2013-07-04 13 views
-4

我發現的例子都不適用於我的案例。我有2個表格:如何使用JOIN語句從表中刪除?

itemscat_id;和 catalogid

我想從items刪除所有記錄,不catalog

謝謝。

+3

什麼例子?例如,官方手冊中的例子通常就像一種魅力。 – fancyPants

回答

4
delete i 
from items i 
left join catalog c on c.id = i.cat_id 
where c.id is null 
2

您可以刪除使用左聯接在一些其他的答案證明,但這個作品一樣好,並且更容易移植到不一如既往地支持左邊DELETE語句聯接構建其他數據庫。

delete from items 
where cat_id not in (select id from catalog) 

順便說一句,如果你有正確的外鍵約束,它不應該是可能的項目存在引用不存在的類別。我認爲你應該考慮將這些限制置於原地。

1
DELETE FROM items i 
LEFT JOIN catalog c ON i.cat_id = c.id 
WHERE c.id IS NULL;