我有一个article.cat_id
链接到的数据库category.id
。
我从中删除了几行category
,现在我想从article
该链接中选择或删除所有行到不存在的id
in中。category
不幸的是,我不完全知道哪些id
s 已被删除。
是否有一种 SQL 方法来检查是否返回article
不category.id
等于的所有行article.cat_id
?
例如
SELECT * FROM Table_1 where Table_1.ID not in (SELECT Table_2.ID FROM Table_2)
内部选择它将选择表 2 中的所有 ID,而外部选择它将基于返回的行,其中 ID 在表 2 中不存在
DELETE a.*
FROM article a
LEFT JOIN category c
ON a.cat_id = c.id
WHERE c.id IS NULL
更改DELETE
为SELECT
first 以确保它是您想要的。
delete a
from article a
left outer join category c on c.id = a.cat_id
where c.id is null