• ベストアンサー

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

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

いきなり出てきた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 ); のような記述になります。

obone
質問者

お礼

上手くなりました。ありがとうございました。

その他の回答 (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);

関連するQ&A