안티 조인(Anti Join)
목적
- 첫 번째 테이블의 데이터 중 두 번째 테이블과 일치하지 않는 데이터만 반환
특징
- NOT EXISTS 또는 NOT IN 연산자 사용
- 조인 조건에 만족하지 않는 행만 선택
- 예시 쿼리:
SELECT e.employee_id, e.name
FROM employees e
WHERE NOT EXISTS (
SELECT 1
FROM departments d
WHERE e.department_id = d.department_id
);
- 세미 조인과 주요 차이점:
- 세미 조인: 일치하는 데이터 선택 - 안티 조인: 일치하지 않는 데이터 선택
- 성능 팁:
- - 인덱스 활용
- - 서브쿼리 최적화
- - 데이터 양에 따른 적절한 조인 방식 선택