Programming/Oracle SQL
[ Oracle ] Oracle DB Self Join 예제
호IT
2021. 3. 29. 14:01
Self Join 이란, 자기 자신과 Join 하는 것입니다.
어떤 경우에서 Self join 을 사용하는지를 알아보겠습니다.
위 사진은 emp 테이블을 출력한 것입니다.
여기서, 매니저 사번, 매니저명, 부하직원사번, 부하직원명을 매니저사번별로 출력하려면 어떻게 해야할까요?
예를 들어서, SMITH 의 매니저는 MGR 컬럼번호 7902를 가지고 있는 FORD 가 될 것입니다.
ALLEN 의 매니저는 7698 이라는 mgr 번호를 가진 BLAKE 가 될것입니다.
이럴 때 self join 을 이용하여 마치
mgr 컬럼을 가지고 있는 테이블이 하나 존재하는 것 마냥 쿼리를 짜주면 됩니다.
select e1.mgr, e2.ename, e1.empno, e1.ename
from emp e1 join emp e2 on e1.mgr=e2.empno;
from 뒤에 테이블이 두 개가 온다는 것이 self join 의 특징입니다.
이때 유의해야할 점은, e1 e2 처럼 이름을 반드시 정해줘야한다는 것입니다.
위 쿼리문을 출력한 결과는 아래 그림과 같습니다.