当前位置: 代码迷 >> SQL >> in跟exists的SQL执行效率分析
  详细解决方案

in跟exists的SQL执行效率分析

热度:9   发布时间:2016-05-05 14:19:34.0
in和exists的SQL执行效率分析
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
   
    (4)两者的区别:
   
    EXISTS:后面可以是整句的查询语句
    IN:后面只能是对单列
  相关解决方案