예제를 하나 더 봅시다.
코드 9-7
USE mywork;
SELECT a.dept_no, a.dept_name, b.emp_no
FROM departments a
INNER JOIN dept_manager b
ON a.dept_no = b.dept_no
WHERE SYSDATE() BETWEEN b.from_date AND b.to_date;
실행결과
코드 9-7은 부서 테이블(departments)과 부서 관리자(dept_manager) 테이블을 조인해 부서 정보와 부서의 현재 관리자 사번을 조회하는 쿼리입니다. 결과로 9건의 데이터가 조회됐습니다. departments 테이블에는 총 10건의 데이터가 있는데, 그중 부서 번호가 ‘d010’인 IT 부서가 누락됐습니다. 누락된 이유는 해당 부서에 관리자가 없기 때문입니다. dept_manager 테이블의 dept_no 칼럼에는 값이 ‘d010’인 건이 없습니다. IT 부서까지 조회하려면 외부 조인을 해야 합니다. 그런데 스칼라 서브쿼리를 사용하면 외부 조인을 하지 않고도 IT 부서까지 조회할 수 있습니다.