(精)用表连接取代not in查询

news/2024/7/5 0:57:40
用表连接取代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


http://www.niftyadmin.cn/n/4235169.html

相关文章

ORA-07274 spdcr:access error错误一例

下午在客户office遭遇了ORA-07274错误,那是一套AIX 5.3上10.2.0.4的2节点RAC系统,乍看到7274还以为是ORA-7445的孪生兄弟,心中暗想10.2.0.4的RAC问题还真是不少: Errors in file /s01/oracle/product/10.2.0/db_1/rdbms/log/prod21_psp0_4272…

配置思科2960G交换机

配置思科2960G交换机一 交换机命名及特权密码设置(config)#hostname MLK-sw2960 //交换机命名(config)#enable seret morning //设置特权加密口令,为方便管理,此处使用下面的明码(config&#x…

css3去除选择后的蓝色背景~

浏览器默认都是点击左键拖动选择页面元素后,元素背景变蓝色,这往往是我们不希望看到的,一个好看的界面在用户不小心选择了的时候,哇!!天,满屏幕的蓝色,这可影响体验了,这…

left join (on 和 where条件放置的区别) !!!!

数据库在通过连接两张或多张表来返回记录时,都会生成一张中间的临时表,然后再将这张临时表返回给用户。 在使用left jion时,on和where条件的区别如下: 1、 on条件是在生成临时表时使用的条件,它不管on中的条件是否为真…

进公司十个月

为什么80%的码农都做不了架构师?>>> 进公司十个月总结 不觉间,进入公司已将近十个月了,开始三个月的实习,两个月的试用,算起来正式入职也有五个月了! 十个月来,不是没想过自己以后的…

使用jstl标签是出现不可以使用el表达式错误

应用部署运行的时候出现JSP异常, 发生在使用JSTL库的时候: According to TLD or attribute directive in tag file, attribute value does not accept any expressions, 可能是因为使用了JSP2.0版本, 同时又没有使用JSTL core库的备用版本(RT库), 以下有两种处理方法:1,修改web…

@@IDENTITY 的缺点 SCOPE_IDENTITY() 取而代之

也许大家对SQL Server中的 IDENTITY 都不陌生,都知道它是获取数据表中最后一条插入数据的IDENTITY值。 比如,表 A 中有个 ID 为自增1的字段,假设此时 ID 的值为100,现在如果我往表A插入一条数据,并在插入后 SELECT ID…

sql写多了,都怀疑了

left join 也是关联,只是会有空,只要关联了就是一条记录,当然可以过滤,可以查、可以过滤。 or 关联后,就形成临时表,对此临时表进行过滤。没毛病