sql相关

select~~~from 表1 where 字段 not in(select 字段 ~~from 表2~~)
程序的操作过程:
从表1中取出第1条记录 然后再去执行select 字段 ~~from 表2~ 获得结果集 假设是X 比对记录1中的这个值是否存在于结果集X中
取出第2条记录 执行select 字段 ~~from 表2~ 获得结果集X 比对记录2中的这个值是否存在于结果集X中
然后第3条...
看出问题在哪么? 
问题是 他每次都执行一遍 "select 字段 ~~from 表2~" 你说速度能快么?
推荐做法

select a.*
from table1 a
left join (select PK from table2) b on a.PK=b.PK
where b.PK is null
这里select PK from table2只需要做一遍 速度要快一些
posted @ 2013-02-26 07:10  qizai  阅读(180)  评论(0编辑  收藏  举报