MYSQL documentationは、それは非常に明確はいあなたはこの
を行うことができますあなたが行を削除する DELETE文で複数のテーブルを指定することができますに関係するすべてのテーブルから削除する場合を除きWHERE 句の の特定の条件に応じて、1つまたは複数のテーブル から。ただし、ORDER BYまたはLIMITを複数テーブルの DELETEに使用することはできません。 table_references句 には、結合に関与するテーブルがリストされます。 構文はセクション 12.2.8.1、 "JOIN構文"で説明されています。最初の複合テーブル構文の
、FROM句 を削除する前に記載されているテーブルから のみ一致する行。 2番目の複数テーブルの 構文では、FROM句 (USING句の前)にリストされている テーブルの一致する行のみが削除されます。
DELETE t1, t2 FROM t1 INNER JOIN t2 INNER JOIN t3
WHERE t1.id=t2.id AND t2.id=t3.id;
または::
DELETE FROM t1, t2 USING t1 INNER JOIN t2 INNER JOIN t3
WHERE t1.id=t2.id AND t2.id=t3.id;
効果は、あなたが、同時に多くのテーブルから行 を削除することができますし、 のみ検索に を使用している追加のテーブルを持っているということです
これらのステートメントは3つのテーブルすべてを使用します削除する行を検索するときは3210ですが、 テーブルの一致する行のみを削除します t1とt2。
前述の例は、インナー は、LEFTとしてSELECT文、JOINに 許可結合の他のタイプを使用することができるDELETEステートメント、JOIN が、複数のテーブルを使用します。例えば、T2で一致していない をt1に存在する行を削除するために、 使用はLEFT JOINは:一般的な答えとして
DELETE t1 FROM t1 LEFT JOIN t2 ON t1.id=t2.id WHERE t2.id IS NULL;
The syntax permits .* after each tbl_name for compatibility with Access.
...試しましたか? –