sql中 if exisits()与in操作在检索数据时哪个效率高,为什么?

来源:百度知道 编辑:UC知道 时间:2024/05/24 09:16:38
如题

exists exists只返回true or false in则返回结果集 你想想看吧

一般exisits效率高些
in和exists的SQL执行效率分析

A,B两个表,

(1)当只显示一个表的数据如A,关系条件只一个如ID时,使用IN更快:

select * from A where id in (select id from B)

(2)当只显示一个表的数据如A,关系条件不只一个如ID,col1时,使用IN就不方便了,可以使用EXISTS:

select * from A

where exists (select 1 from B where id = A.id and col1 = A.col1)

(3)当只显示两个表的数据时,使用IN,EXISTS都不合适,要使用连接:

select * from A left join B on id = A.id

所以使用何种方式,要根据要求来定。

2楼说的不错

二楼说的太好的,让我茅塞顿开了,谢谢了