728x90
- 쿼리문 안에 쿼리문이 있는 것을 서브쿼리라고 부른다.
- 조건문 등을 만들 때 값을 직접 지정하지 못하고 쿼리문을 통해 구해와야 할 경우 서브쿼리를 통해 원하는 데이터를 가져올 수 있다
- 서브쿼리문은 조인으로 해결되는 경우도 많다
-- 현재 받는 급여의 평균보다 많이 받는 사원들의 사원번호, 급여액을 가져온다.
select avg(salary) from salaries where to_date = '9999-01-01'; -- 필요한 조건
select emp_no, salary
from salaries
where salary > (select avg(salary) from salaries where to_date = '9999-01-01')
and to_date = '9999-01-01';
위의 식을 보면 우선 필요한 조건을 먼저 구하고 (여기 문제에서는 봉급의 평균)
그 조건을 조건절 안에 집어넣어 쿼리문 안에 쿼리문이 있는 형식으로 만들어준다.
-- 1960년 이후에 태어난 사원들이 근무하고 있는 사원들의 사원번호, 근무부서 번호를 가져온다
select emp_no from employees where birth_date >= '1960-1-1';
select emp_no, dept_no
from dept_emp
where emp_no in(select emp_no from employees where birth_date >= '1960-1-1');
'MySQL' 카테고리의 다른 글
MySQL 저장 수정 삭제 (0) | 2021.07.07 |
---|---|
MySQL 데이터 베이스 및 테이블 생성 (0) | 2021.07.07 |
MySQL 조인(JOIN) (0) | 2021.07.05 |
MySQL GROUP BY 과 HAVING (0) | 2021.07.04 |
MySQL SELECT문 및 연산자 (0) | 2021.07.01 |