質問: XXX;#上のselectで取得したa_idをひたすら書き換えて実行 ``` これを一つで実行できるupdate文を教えていただけますでしょうか。
回答: ``` create table A(a_id int primary key,a_name varchar(10),b_id int,a_flg tinyint); insert into A values (1,'a1',100,0), (2,'a2',100,1), (3,'a3',100,0), (4,'a4',100,1); create table B(b_id int primary key,a_id int); insert into B values (1,1), (2,1), (3,2), (4,2), (5,5); ``` 状況 == a_id=1はA,Bに存在してflg=0 a_id=2はA,Bに存在してflg=1 a_id=3はAのみに存在してflg=0 a_id=4はAのみに存在してflg=1 a_id=5はBのみ存在する(Aに存在しなのでflgはなし) 不明 == Aテーブルのb_idは何に使うのかわからない 命題 == Bテーブルにa_idが存在する場合だけa_flgを1にする? 実行 == ``` update A,B set A.a_flg=1 where A.a_id=B.a_id ``` 結果 == | a_id | a_name | b_id | a_flg | | --- | --- | --- | --- | | 1 | a1 | 100 | 1 | | 2 | a2 | 100 | 1 | | 3 | a3 | 100 | 0 | | 4 | a4 | 100 | 1 |