2013-02-22 11 views
7

回答済みの質問を確認しました。しかし、ソリューションは私のために働いていません。MYSQL - 参加によるクエリの削除

DELETE FROM TEST2 
INNER JOIN TEST1 on TEST1.FIELD2 = TEST2.FIELD2 
WHERE TEST1.FIELD1 = 22; 

このクエリを実行すると、phpmyadminで次のエラーが表示されます。

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version 
for the right syntax to use near 'INNER JOIN TEST1 on TEST1.FIELD2 = TEST2.FIELD2' at line 2 

私は疲れています。私は助けが必要です。前もって感謝します。

答えて

16

これは動作するはずです:

DELETE T 
FROM TEST2 T 
INNER JOIN TEST1 on TEST1.FIELD2 = T.FIELD2 
WHERE TEST1.FIELD1 = 22; 

Sample Fiddle Demo

私はあなたにもINでそれを行うことができると思います。

DELETE FROM Test2 
WHERE Field2 IN (
    SELECT Field2 
    FROM Test1 
    WHERE Field1 = 22) 
+0

ありがとうsgeddes。最初の答えは私のために働いています。 – user2003356

+0

@ user2003356 - np、うれしく思うよ! – sgeddes

+1

実行するのに時間がかからず、代わりに正しいものとして最初のものを使う方が良いでしょう。最初に 'in'セクションが実行され、結果を保存してから実行します。プライマリクエリ。 –

関連する問題