in exists 的效率问题

来源:互联网 发布:淘宝运费模板默认运费 编辑:程序博客网 时间:2024/06/07 00:16

 ***********************************exists*****************************************
1:判断子查询是否找到相应记录
2: 当一个子查询既可以用in 业可以用exists 时推荐用exists
 in 进行全表查找 效率差  而且还会进行排序
         select id ,userid from s_emp a where id in (select manager_id from s_emp);

  ID USERID
---- --------
   1 cvelasqu
   2 lngao
   3 mnagayam
   6 murguhar
   7 rmenchu
   8 bbiri
   9 acatchpo
  10 mhavel

**********************************举例**********************************************************
找出管理者:           |
1:select * from s_emp where id exists (select manager_id from emp);    |
            |
2:select manager_id from s_emp group by        |
manager_id having count(*)>1;这条sql可以先取出管理者的id     |
            |
3:select id,userid,from s_emp where id in(select manager_id from s_emp group by manager_id |
having count(*)>1);          |
            |
            |
5:sleect id,userid from s_emp a where exists (select 'm' from s_emp  where manager_id=a.id); |
            |
            |
            |
************************************************************************************************