dポイントプレゼントキャンペーン実施中!

条件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

A 回答 (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 );

のような記述になります。
    • good
    • 0
この回答へのお礼

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

お礼日時:2011/02/17 10:05

条件が二つだからエラーになるのではなく、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);
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!