我有两个表:
listings(item_id, ...)
images(item_id, ...)
两个表中的 item_id 值相同 - 但我从“listings”表中删除了列表,但没有删除“images”表中的相应行。
所以 - 如果 IMAGES 中的 item_id 与我的主“listings”表中任何更新的 item_id 值都不对应,我想删除第二个“images”表中的所有行。
如何删除“images”表中所有未被“listings”引用的记录?
我一直在试验 SQL 脚本和这样的子查询:
DELETE FROM images WHERE item_id IN
(SELECT item_id FROM images EXCEPT SELECT item_id FROM listings)
但在我搞砸之前,想确认这是否正确?
最佳答案
你应该使用子查询
DELETE FROM images WHERE item_id NOT IN(SELECT item_id FROM listings)
关于mysql - 两个表 - 如果两个表中均未引用 ID,如何删除行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5835589/