要把两表之间不同的记录,查询出来,怎么写SQL语句?

时间:2022-07-17 19:22:40
要把两表之间不同的记录,查询出来,怎么写SQL语句。如:

A表

ID 名称
1    AAA
2   BBBB


B表

ID  名称
1  CCCC
3  DDDDD

A表和B表用ID号关联,现在想只显示出B表的 ID号为3的记录,用什么SQL语句?

Select B.* From B Where B.ID Not In (Select ID From A)
这种写法效率不高,有几千条记录时,速度很慢。有没有什么效率高的方法 ?

3 个解决方案

#1


Select B.* From B 
Where  Not exists (Select 1 From A where B.ID = A.ID)

#2


第2个方法:

Select B.* 
From B 
left join A
       on B.ID = A.ID
where a.id is null

#3


通过测试,方法2 的效率更高。谢了。结贴,给分。。

#1


Select B.* From B 
Where  Not exists (Select 1 From A where B.ID = A.ID)

#2


第2个方法:

Select B.* 
From B 
left join A
       on B.ID = A.ID
where a.id is null

#3


通过测试,方法2 的效率更高。谢了。结贴,给分。。