- 서브쿼리(내부 쿼리)의 조건을 만족하는 현재 행(외부 쿼리의 행)이 존재하는지 점검


  - 서브쿼리가 적어도 하나의 행을 반환

=> 참을 반환

=> 서브쿼리 탐색 종료

=> 외부 쿼리의 다른 행에 대해 탐색 시작



  문제 : 부하직원이 1명 이상인 사원?


select * from emp e

where 1 <= (select count(*) from emp

           where mgr = e.empno);


↓ ↓ ↓


select * from emp e

where exists (select 'x' from emp

             where mgr = e.empno);



  문제 : 사원이 한명도 없는 부서는?



select * from dept

where deptno not in (select deptno from emp

                    group by deptno);


↓ ↓ ↓


select * from dept d

where 0 = (select count(*) from emp

          where deptno = d.deptno);


↓ ↓ ↓


select * from dept d

where not exists (select 'x' from emp

 where deptno = d.deptno);

+ Recent posts