article thumbnail image
Published 2021. 7. 5. 16:46
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
복사했습니다!