유형 2
입력
SELECT count(*)
FROM employees
WHERE department_id IN ( SELECT department_id
FROM departments
WHERE parent_id IS NULL);
결과
COUNT(*)
----------
1
위 쿼리는 부서 테이블에서 parent_id가 NULL인 부서번호를 가진 사원의 총 건수를 반환하는 쿼리다. 여기서 메인 테이블은 사원 테이블이며, 괄호 안에 있는 서브 쿼리는 사원 테이블과 아무런 연관성이 없다. 그리고 유형1과 유형2 쿼리의 차이점을 살펴보면, 유형1은 서브 쿼리에서 단일 행을 반환한 반면 유형2는 여러 행을 반환했다는 점이다. 그럼 또 다른 유형을 살펴 보자.
유형 3
입력
SELECT employee_id, emp_name, job_id
FROM employees
WHERE (employee_id, job_id ) IN ( SELECT employee_id, job_id
FROM job_history);
결과
EMPLOYEE_ID EMP_NAME JOB_ID
----------- ----------------- ------------
200 Jennifer Whalen AD_ASST
176 Jonathon Taylor SA_REP
2개의 행이 선택됨.
위 쿼리는 job_history 테이블에 있는 employee_id, job_id 두 값과 같은 건을 사원 테이블에서 찾는 쿼리로 서브 쿼리는 메인 쿼리와 연관성이 없다. 그리고 동시에