本文主要是介绍(精)用表连接取代not in查询,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
写了好几个页面,速度都上不去,瓶颈在于SQL查询。太多的表,太多的not in,总是从一大推表和数据中筛选出一点数据。看了很多关于SQL优化的文章,都强烈要求不要太多使用not in查询,最好用表连接来取代它。如:
select ID,name from Table_A where ID not in (select ID from Table_B)
呵呵,这句是最经典的not in查询了。改为表连接代码如下:
select Table_A.ID,Table_A.name from Table_A left join Table_B on Table_A.ID=Table_B.ID and Table_B.ID is null
或者:
select Table_A.ID,Table_A.name from Table_A left join Table_B on Table_A.ID=Table_B.ID where Table_B.ID is null
经试用,效果立竿见影,呵呵:)
REFS:http://blog.csdn.net/terryhuang/article/details/2517004
这篇关于(精)用表连接取代not in查询的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!