繁体   English   中英

删除未从另一个表引用的表的所有记录

[英]Deleting all records of a table that are not referenced from another table

2桌:
items(id,...)
用户(id,item_id,...)

如何删除未从用户引用的项目中的所有记录?

请注意,NOT IN可能非常慢。 有时候 - 令人费力 - 这样做的速度更快:

DELETE FROM items WHERE id IN
(SELECT id FROM items EXCEPT SELECT item_id FROM users)
DELETE FROM items WHERE id NOT IN (SELECT item_id FROM users)

(使用子查询users选择所有item_ids ,然后从id不在该子查询结果中的items中删除记录)

delete from items
where id not in (select item_id from users)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM