본문 바로가기
개발자 양성과정 필기노트/DB | ORACLE

SELF JOIN, 서브쿼리

by jono 2021. 9. 10.

DB  ||  DAY10  ||  SELF JOIN, 서브쿼리


 1. SELF JOIN 

  • JOIN을 활용하여 같은 테이블에서 데이터를 추출함.
  • 하나의 테이블에 두개의 단축어를 지정하여 마치 다른 테이블에서 데이터를 추출하는 것과 같은 효과를 낼 수 있다.
SELECT e1.employee_id, e1.last_name, e2.last_name
FROM employees e1 JOIN employees e2
ON e1.employee_id = e2.manager_id ;

 


 2. 서브쿼리 

  • 쿼리문 안에 또 쿼리문이 들어있는 구문형식.
  • GROUP BY절과 함께 쓰지 않는다.
SELECT department_id, min(salary)
FROM employees
GROUP BY department_id
HAVING MIN(salary) > ( SELECT MIN(salary)
                                  FROM employees
                                  WHERE department_id = 50 );

 

 # Inline View 

: FROM절에 작성된 서브쿼리를 일컫는다.

SELECT a.last_name, a.salary, a.department_id, b.salavg
FROM employees a JOIN ( SELECT department_id, AVG(salary) as salavg
                                    FROM employees
                                    GROUP BY department_id ) b
ON a.department_id = b.department_id
WHERE a.salary > b.salavg ;

// 자신이 속한 부서의 평균급여보다 급여가 많은 사원의 정보가 출력된다.

댓글