在编写SQL语句时,假设要实现一张表有而另外一张表没有的数据时。 通常第一直觉的写法是:
select * from table1 where table1.id not in(select id from table2)
这样的写法尽管看起来非常直观。可是运行的效率会非常低下,在数据量非常大的时候效果尤其明显,我们推荐使用not exists或左连接来取代。
select a.* from table1 a left join table2 b on a.id=b.id where b.id is null
相同。这样的方法也适用于in
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步