select * from wms_inventory i WHERE not EXISTS (select 1 from wms_item t where t.id=i.SKU_ITEM_ID and t.company_id=i.COMPANY_ID);
select * from wms_inventory i LEFT JOIN wms_item t on t.id=i.SKU_ITEM_ID and t.company_id=i.COMPANY_ID where t.id is null;
delete from wms_inventory i WHERE not EXISTS (select 1 from wms_item t where t.id=i.SKU_ITEM_ID and t.company_id=i.COMPANY_ID);
delete from wms_inventory i LEFT JOIN wms_item t on t.id=i.SKU_ITEM_ID and t.company_id=i.COMPANY_ID where t.id is null;
改为
delete i.* from wms_inventory i WHERE not EXISTS (select 1 from wms_item t where t.id=i.SKU_ITEM_ID and t.company_id=i.COMPANY_ID);
delete i.* from wms_inventory i LEFT JOIN wms_item t on t.id=i.SKU_ITEM_ID and t.company_id=i.COMPANY_ID where t.id is null;
原因:因为insert、update、delete都只能针对一个表操作!
本文详细介绍了如何在SQL中使用not exists和left join结合where子句来查询和删除那些在另一表中没有关联记录的数据行。通过对比不同写法,阐述了在执行删除操作时,仅能针对单个表进行操作的原则。
10万+

被折叠的 条评论
为什么被折叠?



