스칼라 서브쿼리를 사용하면 IT 부서까지 조회되는 이유는 뭘까요? 메인쿼리에 WHERE 절이 없으므로 departments 테이블 전체를 조회합니다. 따라서 IT 부서까지 조회됩니다. 다만, 스칼라 서브쿼리는 해당 부서의 관리자 사번을 가져오는데, IT 부서는 dept_manager 테이블에 데이터가 없어서 사번이 NULL로 조회됩니다. 그런데 코드 9-7처럼 내부 조인하면 두 테이블에서 조인 칼럼의 값이 같은 건만 가져와서 IT 부서가 누락됩니다. 이처럼 스칼라 서브쿼리는 메인쿼리와 조인 조건이 일치하지 않으면 NULL로 조회될 뿐, 해당 건(IT 부서) 자체가 누락되지는 않습니다.
정리하면, 스칼라 서브쿼리는 메인쿼리의 SELECT 절에서 하나의 칼럼(표현식) 역할을 하며 단일 값, 단일 로우를 반환해야 합니다.