서브 쿼리
쿼리문 안에 쿼리문이 있는것을 서브 쿼리라고 부른다
조건문등을 만들떄 값을 직접 지정하지 못하고 쿼리문을 통해 구해와야 할 경우 서브 쿼리를 통해 값을 구해와 조건문을 완성 할 수 있다
-- 서브 쿼리
-- 쿼리문 안에 쿼리문이 있는것을 서브 쿼리라고 부른다
-- 조건문등을 만들떄 값을 직접 지정하지 못하고 쿼리문을 통해 구해와야 할 경우 서브 쿼리를 통해 갑승ㄹ 구해와 조건문을 완성 할 수 있다
-- 현재 받는 급여의 평균보다 많이 받는 사원들의 사원번호, 급여액을 가져온다
select avg(salary) from salaries;
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을 가져온다
-- join 으로 풀기
select a.emp_no, first_name from employees a, dept_emp b where a.emp_no = b.emp_no and b.dept_no = 'd001';
-- 서브쿼리로 풀기
select emp_no, dept_no from dept_emp where dept_no = 'd001';
select * from employees;
select emp_no, first_name from employees where emp_no in(select emp_no from dept_emp where dept_no = 'd001');
-- 1960 년 이후에 태어난 사원들이 근무하고 사워들의 사원번호, 근무 부서번호를 가져온다
-- join으로 풀기
select a.emp_no, dept_no from employees a, dept_emp b where a.emp_no = b.emp_no and birth_date >= '1960-01-01';
-- 서브 쿼리로 풀기
select emp_no from employees where birth_date >= '1960-01-01';
select emp_no, dept_no from dept_emp where emp_no in (select emp_no from employees where birth_date >= '1960-01-01');
'Mysql > Mysql 기초' 카테고리의 다른 글
mysql 기초 set(합집합, 교집합, 차집합) (0) | 2020.07.09 |
---|---|
mysql join (0) | 2020.07.09 |
mysql 그룹함수 (0) | 2020.07.09 |
mysql 기초 날짜 함수 (0) | 2020.07.09 |
mysql 문자열함수 (0) | 2020.07.09 |