SQL语句的NOT IN如何改进效率? ( 积分: 12 )

  • 主题发起人 主题发起人 LJH1978
  • 开始时间 开始时间
L

LJH1978

Unregistered / Unconfirmed
GUEST, unregistred user!
表A

AID NAME BID.....
现在我要找出所有AID的记录号没在BID中的记录,我用如下SQL语句

select * from 表A WHERE AID NOT IN(select BID from 表A )
表中有一万条记录左右,运行时为什么很慢,要近十分钟?这种语句效率太低,有没有什么好的办法
 
select a.*
from 表A a,
(select aid from (select aid from 表A
union all
select bid from 表A) t
group by aid having count(*)=1
)TT
where a.aid=tt.aid
 
SELECT 表A.* FROM 表A LEFT JOIN 表B ON AID=BID
WHERE BID IS NULL
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
855
SUNSTONE的Delphi笔记
S
S
回复
0
查看
783
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
758
SUNSTONE的Delphi笔记
S
后退
顶部