[sql] EXISTS 연산자를 사용한 특정 조건을 만족하는 데이터 조회
EXISTS 연산자는 서브쿼리의 결과가 존재하는지 여부를 확인하는 데 사용됩니다. 서브쿼리의 결과가 존재하면 True를 반환하고, 그렇지 않으면 False를 반환합니다.
이 연산자는 주로 외부 쿼리의 결과에 기초하여 서브쿼리의 실행 조건을 판단할 때 유용하게 사용됩니다.
예제:
다음은 employees 테이블에서 department가 ‘Sales’ 인 직원의 데이터를 조회하는 예제입니다.
SELECT emp_id, emp_name
FROM employees e
WHERE EXISTS (
SELECT 1
FROM departments d
WHERE d.department = 'Sales'
AND d.dept_id = e.dept_id
);
이 쿼리는 employees 테이블과 departments 테이블 간의 조인을 사용하지 않고도 ‘Sales’ 부서에 속한 직원의 데이터를 조회합니다.
참고 자료:
- MySQL 공식 문서: https://dev.mysql.com/doc/refman/8.0/en/exists-and-not-exists-subqueries.html
- PostgreSQL 공식 문서: https://www.postgresql.org/docs/12/sql-exists.html