下記のようにtableAとtableBがあります。
テーブルtableAのカラムanswerに適当なことがいろいろ書いてあるので、テーブルtableBから対応する答えを探してきてテーブルtableAに記入したい、という感じです。
tableA
ID | answer |
---|---|
1 | A |
2 | B |
3 | C |
4 | D |
5 | E |
tableB
ID | A_ID | answer | is_reliable |
---|---|---|---|
1 | 1 | ABC | 1 |
2 | 1 | BCD | 0 |
3 | 2 | CDE | 1 |
4 | 3 | DEF | 1 |
5 | 4 | EFG | 0 |
があって、tableAを下記のようにしたいです。
tableA
ID | answer |
---|---|
1 | ABC |
2 | CDE |
3 | DEF |
4 | D |
5 | E |
テーブルtableBのカラムは下記のような感じです。
A_IDは、テーブルtableAのカラムIDとキーの関係です。
answerは、テーブルtableAのカラムanswerに記入されたい内容です。
is_reliableには、信頼できるかどうかが書いてあります。0は信頼できない、1は信頼できる、です。
is_reliable=1の中では、A_IDに重複するものがないことがわかっています。
下記のようなSQLを書いて解決したいです。
sql
1update tableB 2 set answer = (ここになにか入る);
というところまでしかわかりません…。
sql
1select * from tableA join tableB on tableA.ID = tableB.A_ID where tableB.is_reliable=0;
というselect文は書けたので、これをupdateにうまく組み込むのだと思うのですが……。
アドバイスいただけたらと思います!
以下、みほんのテーブル2つを生成するSQLです。
sql
1drop table if exists tableA; 2create table tableA(ID, answer); 3insert into tableA values(1, "A"); 4insert into tableA values(2, "B"); 5insert into tableA values(3, "C"); 6insert into tableA values(4, "D"); 7insert into tableA values(5, "E"); 8drop table if exists tableB; 9create table tableB(ID, A_ID, answer, is_reliable); 10insert into tableB values(1, 1, "ABC", 1); 11insert into tableB values(2, 1, "BCD", 0); 12insert into tableB values(3, 2, "CDE", 1); 13insert into tableB values(4, 3, "DEF", 1); 14insert into tableB values(5, 4, "EFG", 0);
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/12/04 14:39
2019/12/05 01:02