De Haan의 salary는 17000으로 단일 행입니다. 즉, 서브쿼리의 결괏값 17000을 메인 쿼리에 조건 값으로 전달했고, 메인 쿼리는 그 값을 받아 salary가 17000인 모든 직원을 출력했습니다.
그림 7-2 단일 행 서브쿼리 개념
위 예제는 다음 SELECT 문과 같은 결과입니다.
SELECT *
FROM employees A
WHERE A.salary = 17000;
물론 ‘De Haan’이라는 last_name으로 salary를 조회하여 17000이라는 값을 알아낸 후, 위 코드처럼 17000을 직접 입력해서 salary가 17000인 직원을 조회할 수 있습니다. 다만 이렇게 하려면 SELECT 문을 두 번 작성해야 할 뿐만 아니라 논리적으로도 분리됩니다. 이런 비효율성을 최소화하고 SELECT 문을 효율적이고 논리적으로 사용할 수 있도록 하는 것이 서브쿼리입니다.