いつもteratailでいろいろ助けられています。
プログラミング初心者です。今回はmysqlの書き方について質問させてください。
条件:
A,B2つのテーブルがあります。
(カラムの属性は省略して書きました。)
Aテーブル
a_id(主キー) , a_name , b_id , a_flg
Bテーブル
b_id(主キー) , a_id
このテーブルのjoin 関係は A.a_id = B.a_id です。
B.a_idには任意のA.a_idがあります。
Aのすべてのレコードのa_flgの値は0です。
やりたいこと:
Aテーブルの、Bにa_idが乗ってあるレコードのa_flgを1にupdateしたいです。
日本語を入れてsqlを書くとしたら
sql
1update A 2 left join B 3 on A.a_id = B.a_id 4set A.a_flg = 1 5where 「BにあるAレコード」
こんな感じなのですが、このwhere句にどうかけばいいかわからなかったので教えてほしいです。
もしupdate文 1こじゃなくて いくつかに分けるのだったら簡単ですが
sql
1select A.a_id from A left join B on A.a_id = B.a_id; 2update A set a_flg = 1 where a_id = XXX;#上のselectで取得したa_idをひたすら書き換えて実行
これを一つで実行できるupdate文を教えていただけますでしょうか。