1つのSQLステートメントで2つのテーブルから行を削除できますか?
-
29-09-2019 - |
質問
「レビュー」と呼ばれる2つの表があり、もう1つは「Review_Description」と呼ばれます。
私が参加して、両方からすべてのデータを取得する場合:
SELECT *
FROM reviews
INNER JOIN reviews_description
ON reviews.reviews_id=reviews_description.reviews_id
WHERE reviews.customers_id = 54183
これに基づいて、この基準に一致する両方のテーブルで行を削除したいと思います。
解決
はい、 MySQLは、1つのステートメントで複数のテーブルからの削除をサポートしています:
最初のマルチテーブル構文の場合、From句が削除される前にリストされているテーブルからの行のみを削除します。 2番目のマルチテーブル構文の場合、From句(使用句の前)にリストされているテーブルからの行のみが削除されます。効果は、多くのテーブルから行を同時に削除し、検索にのみ使用される追加のテーブルを持つことができることです...
最初のマルチテーブル構文の例:
DELETE reviews, reviews_description
FROM reviews r
JOIN reviews_description rd
WHERE reviews.reviews_id = reviews_description.reviews_id
AND reviews.customers_id = 54183
他のヒント
あなたが持っていない限り on cascade delete
またはa delete trigger
セットアップ2つのステートメントを使用する必要があります
Cascade削除ヘルプはありますか?
所属していません StackOverflow