한 번의 쿼리 구문으로는 원하는 조건을 얻기 어려운 경우 서브쿼리를 사용할 수 있다
실행 순서는 안 쪽에 있는 쿼리 구문이 먼저 실행되며 실행결과를 바깥 쿼리에 넘겨준다
SELECT employee_id, last_name, salary
FROM EMPLOYEES e
WHERE employee_id IN (SELECT DISTINCT manager_id FROM employees);
위 서브쿼리(SELECT ... employees)의 값은 employees 테이블에서
중복 된 manager_id 값을 제거한 값들만 추려내어
IN 함수를 통해 그 값 중에서 하나라도 일치하는 것이 있다면 SELECT 조회 컬럼에 맞춰 출력한다
서브쿼리의 문법은 다양한 위치에서 활용되는 문법으로, 테이블을 대신할 수 있는 가상의 테이블로도 사용할 수 있다
'BackEnd > DataBase - Oracle' 카테고리의 다른 글
[Oracle] 데이터 정의어(DDL) (0) | 2020.02.13 |
---|---|
[Oracle] DML - 트랜잭션(Transaction) (0) | 2020.02.13 |
[Oracle] JOIN과 Self-Join (0) | 2020.02.13 |
[Oracle] 그룹으로 묶는 GROUP BY절과 HAVING절 (0) | 2020.02.13 |
[Oracle] 변환 함수 (0) | 2020.02.12 |