小编典典

两个表-如果两个表中都未引用ID,如何删除行

sql

我有两个表:

listings(item_id, ...)
images(item_id,  ...)

两个表中的item_id值相同-但我从“清单”表中删除并删除了清单,但没有删除“图像”表中的相应行。

所以-如果IMAGES中的item_id与我的主“列表”表中的任何最新item_id值都不对应,我想删除第二个“图像”表中的所有行。

如何删除“图像”表中未从“列表”中引用的所有记录?

我一直在尝试这样的SQL脚本和子查询:

DELETE FROM images WHERE item_id IN
(SELECT item_id FROM images EXCEPT SELECT item_id FROM listings)

但是,在我将其全部拧紧之前,是否想确认这是否正确?


阅读 229

收藏
2021-03-08

共1个答案

小编典典

您应该使用子查询

DELETE FROM images WHERE item_id NOT IN(SELECT item_id FROM listings)

更多示例和解释

2021-03-08