2016-12-13 6 views
0

履歴テーブルのPlatform = "Vudu"を持つアイテムをすべて取得するには、次の結合を実行できます。外部キーに基づいてエントリを削除する最も効率的な方法

SELECT * FROM main_history History INNER JOIN main_iteminstance Instance 
ON History.instance_id=Instance.id 
WHERE platform_type_id='vudu' 

ただし、これらの項目をすべて削除する方法は簡単ではありません。たとえば、次のようにする:

DELETE from main_history h join main_iteminstance i on h.instance_id=i.id 
WHERE platform_type_id='vudu' 

私は、単一のクエリでForeignKeyに基づいて削除を行うことはできますか?

答えて

2

あなたは非常に、非常に近い:

DELETE h 
-------^ 
    FROM main_history h JOIN 
     main_iteminstance i 
     ON h.instance_id = i.id 
    WHERE platform_type_id = 'vudu'; 

MySQLは単に)から削除するテーブル(またはテーブル)を知る必要があります。

関連する問題