EXISTS는 서브쿼리의 결과가 "단 한 건이라도 존재하는가?"만을 확인하는 아주 빠르고 효율적인 연산자입니다. 메인 쿼리의 데이터와 서브 쿼리의 데이터를 한 줄씩 엮어서 확인하는 연관 서브쿼리(Correlated Subquery)와 단짝처럼 붙어 다닙니다.
💡 핵심 비유
VIP 명단 확인하기 입장객 리스트 전체를 스캔해서 짐을 다 검사하는 게 아니라, VIP 명단에 이름이 "존재하는지(EXISTS)"만 쓱 보고 통과시키는 패스트트랙과 같습니다.
🧩 원리 이해하기
Script-1.sql
1
-- 단 한 번이라도 주문(ORDERS)을 한 적이 있는 고객(USERS)만 찾습니다.
-- 서브쿼리 내부에서 메인쿼리의 U.ID를 참조하고 있습니다(연관 서브쿼리).
SELECT U.ID, U.NAME
FROM USERS U
WHERE EXISTS (
SELECT 1
FROM ORDERS O
WHERE O.USER_ID = U.ID
);