본문 바로가기

BackEnd/DataBase - Oracle

[Oracle] 서브 쿼리(Sub Query)

한 번의 쿼리 구문으로는 원하는 조건을 얻기 어려운 경우 서브쿼리를 사용할 수 있다
실행 순서는 안 쪽에 있는 쿼리 구문이 먼저 실행되며 실행결과를 바깥 쿼리에 넘겨준다

 

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 조회 컬럼에 맞춰 출력한다

서브쿼리의 문법은 다양한 위치에서 활용되는 문법으로, 테이블을 대신할 수 있는 가상의 테이블로도 사용할 수 있다