删除第二个表中不包含的记录

Posted

技术标签:

【中文标题】删除第二个表中不包含的记录【英文标题】:Remove records what is not contain in second table 【发布时间】:2013-06-15 22:01:54 【问题描述】:

我要两张桌子:

lang_temp(最新数据):

sku|postid|fi|en|ru(15000 条记录)

完整产品:

sku|postid|fi|en|ru|xx|zzz|aaaa|bbb(15200 条记录)

postid 是唯一的,不能相同。

我需要通过 postid 删除 lang_temp 表中不存在的 full_products 记录/

谢谢!

【问题讨论】:

【参考方案1】:
DELETE FROM
  full_products
WHERE 
  NOT EXISTS (SELECT * FROM lang_temp l WHERE full_products.postid = l.postid)

【讨论】:

以上是关于删除第二个表中不包含的记录的主要内容,如果未能解决你的问题,请参考以下文章

使用 group by 从一个包含批量记录的表中获取一些统计数据并将结果放入第二个表中

SQL计算第二个表中一个表中单词的出现次数

SQL LEFT JOIN 从第二个表中排除两条记录

索引视图中完全外连接的替代方案

加入包含多条记录的第二个表,取最新的

oracle SQL left join()或full out join()根据键排除记录