SubQuery란?
- 다른 쿼리 내부에 포함되어 있는 select 문을 의미한다.
- 서브 쿼리를 포함하고 있는 바깥 쿼리를 메인 쿼리라고 한다.
- 서브 쿼리는 ()로 감싸져야하고, 비교 연산자의 오른쪽에 있어야 한다.
사용 가능한 곳
- select
- from
- where
- having
- order by
- insert문의 value
- update문의 set
Nested Subquery
단일 행
서브 쿼리의 결과가 단일 행임
다중 행
서브 쿼리의 결과가 여러 행임
- in : 서브 쿼리의 결과 중 해당
- any : 서브 쿼리의 결과에 하나라도 만족(or)
- all: 모든 서브 쿼리의 결과에 만족(and)
Inline View
- from 절에서 사용되는 서브 쿼리
- 임시적인 뷰이기 때문에 DB에 저장되지 않음.
Scalar SubQuery
- select 절에 있는 서브 쿼리
- 한 개의 행만 반환한다.
select e.employee_id, e.first_name, job_id,
(select department_name from departments d where e.department_id = d.department_id) as department_name
from employees e
where job_id ='IT_PROG';