유형 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 두 값과 같은 건을 사원 테이블에서 찾는 쿼리로 서브 쿼리는 메인 쿼리와 연관성이 없다. 그리고 동시에

    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.