서브 쿼리란 다른 쿼리 내부에 포함되어 있는 select 문을 의미한다.
서브 쿼리를 포함하고 있는 쿼리를 외부 쿼리 또는 메인 쿼리라고 부르며, 서브 쿼리는 내부 쿼리라고도 부른다.
서브 쿼리는 비교 연산자의 오른쪽에 기술해야 하고 반드시 괄호()
로 감싸져 있어야만 한다.
서브 쿼리의 종류
where
문에 작성하는 서브 쿼리.주의 사항
()
로 감싸야 한다. 서브 쿼리가 사용이 가능한 곳
사용 이유
join에 비해 빠르다.
사번이 100인 사원의 부서 이름?
-- join
select department_name
from employees e join departments d
on e.department_id = d.department_id
where e.employee_id = 100;
-- subquery
select department_name
from departments
where department_id = (
select department_id
from employees
where employee_id = 100
);
select employee_id, first_name
from employees
where department_id in (
select department_id
from departments
where location_id = (
select location_id
from locations
where binary(city) = 'Seattle'
)
);