반응형
서브 쿼리
쿼리문 안에 쿼리문이 있는 것을 서브 쿼리라고 합니다.
조건문을 만들 떄 값을 직접 지정하지 못하고, 쿼리문을 통해 구해와야 할 경우가 있습니다. 이 떄 서브 쿼리를 통해 값을 구해와 조건문을 완성할 수 있습니다.
예제
# 현재 받는 급여와 평균보다 많이 받는 사원들의 사원 번호, 급여액을 가져옵니다.
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';
평균을 가져오는 쿼리를 사용하여, 구하는 예제입니다.
# d001 부서에 근무화고 있는 사원들의 사원 번호와 first_name을 가져옵니다.
select a1.emp_no, a1.first_name
from employees a1, dept_emp a2
where a1.emp_no = a2.emp_no and a2.dept_no = 'd001';
select emp_no, first_name
from employees
where emp_no in (
select emp_no from dept_emp where dept_no = 'd001'
);
두 쿼리는 같은 결과를 반환합니다. 개발자 취향에 맞게, join 문을 사용하던가, 서브 쿼리를 활용해 원하는 결과를 얻을 수 있습니다.
# 1960년 이후에 태어난 사원들이 근무하고 있는 사원들의 사원번호, 근무 부서 번호를 가져옵니다.
select emp_no, dept_no
from dept_emp
where emp_no in (
select emp_no from employees where birth_date >= '1960-01-01'
);
우선 1960년 이후에 태어난 사원들의 번호를 가져온 뒤, 해당하는 사원들의 번호와 근무 부서 번호를 가져와 순차적으로 문제를 해결합니다.
반응형
'SW > MySQL' 카테고리의 다른 글
MySQL : 데이터 저장, 삭제, 수정 : 방법, 예제 (0) | 2020.01.27 |
---|---|
MySQL : 데이터베이스, 테이블 생성 : 방법, 예제, 팁 (0) | 2020.01.26 |
MySQL : SET(집합 연산) : 합집합, 교집합, 차집합 : 사용방법, 예제 (0) | 2020.01.24 |
MySQL : 그룹함수 : 카운트, 총합, 평균, 최대값, 최저값 : 예제, 사용방법 (0) | 2020.01.23 |
MySQL : 날짜 함수 : 형식, 날짜, 연산 방법 : 개요, 예제, 방법 (0) | 2020.01.22 |