SQL

[SQL][TIL] exists 연산자 (where절의 in 연산자 대신 사용)

breadz 2021. 7. 8. 14:41

※ 반드시 subquery를 끼고 있어야 함

※ subquery가 참이면 main query의 컬럼이 출력됨. sub query가 문법상 틀리지만 않으면 main query 출력

 

select *
from departments d
where exists (select *
              from employees
              where department_id = d.department_id);


※ where절의 in 연산자 대신에 쓰는건가ㅏ..? ㅇㅇ 속도 빠르게 하기 위해서 사용

// in 연산자를 쓸 경우, employees의 department_id의 모든 행을 다 검색하게 됨. => 속도가 느리다.

select *
from departments d
where department_id in (select department_id
                        from employees
                        where department_id = d.department_id);