관리 메뉴

FU11M00N

[ Oracle ] Oracle DB Self Join 예제 본문

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 처럼 이름을 반드시 정해줘야한다는 것입니다.

 

 

 

 

위 쿼리문을 출력한 결과는 아래 그림과 같습니다.

 

 

 

 

 

 

Comments