본문 바로가기
Database/Oracle

[오라클(Oracle) ] 셀프 조인(SELF JOIN)

by Ali1020 2022. 4. 17.

 

 

[오라클(Oracle) ] 셀프 조인(SELF JOIN)

 

 

셀프 조인(SELF JOIN)은 한 테이블 내의 칼럼끼리 연결하는 조인이다. 따라서 FROM 절에 동일 테이블을 두 번 언급해야 하기 때문에 별칭을 사용해야 한다. 

 

1
2
3
SELECT A.칼럼1, B.칼럼2,...
FROM 테이블 A, 테이블 B
WHERE A.칼럼1 = B.칼럼2
 

 

셀프 조인(SELF JOIN)에서 가장 많이 사용되는 예시는 사원의 관리자를 조회하는 경우이다. 모든 사원들이 사원 테이블에 저장되어 있고 각 사원의 관리자에 해당하는 인물들도 사원 테이블에 있어 한 테이블 내의 칼럼끼리 연결하여 조인해야 한다.

동일 테이블 간의 셀프 조인(SELF JOIN)

 

 

1
2
3
SELECT A.NAME, A.MGR, B.NAME
FROM EMP A, EMP B
WHERE A.MGR = B.EMPNO
cs

 

위의 SQL문 결과 관리자가 배정된 사원들의 조인 결과가 출력된다. 만약 아직 관리자가 정해지지 않은 사원까지 모두 출력해야 한다면 OUTER JOIN을 사용한 SELF JOIN을 해야 한다. 

1
2
3
4
5
6
7
8
9
SELECT A.NAME, A.MGR, B.NAME
FROM EMP A LEFT OUTER JOIN EMP B              
ON A.MGR = B.EMPNO                              --- 또는
 
 
 
SELECT A.NAME, A.MGR, B.NAME
FROM EMP A, EMP B              
WHERE A.MGR = B.EMPNO(+)           
 

댓글