- ベストアンサー
updateで
条件2つの場合updateがエラーになるのですが 下記SQLではだめなのでしょうか。 table_AのAdd=table_B.Add で table_B.name=3 の時 table_A.name=2 UPDATE table_A SET table_A.name=2 WHERE table_A.Add=table_B.Add AND table_B.name=3 ->Error
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
いきなり出てきたtable_Bが問題ではないかと。 table_Aとtable_BのAddが同じで、かつtable_Bのname=3の条件であれば、 Update table_A Set name=2 Where Add In ( Select Add From table_B Where name=3 ); のような記述になります。
その他の回答 (1)
- yamada_g
- ベストアンサー率68% (258/374)
回答No.2
条件が二つだからエラーになるのではなく、UPDATE文のどこにもtable_Bが出てこないので table_Bを参照することができないからエラーになっているのですよね。 以下のようにしてはどうでしょうか。 UPDATE table_A a SET a.name = 2 WHERE EXISTS ( SELECT * FROM table_B b WHERE a.Add = b.Add AND b.name = 3);
お礼
上手くなりました。ありがとうございました。