오라클 셀프조인(Oracle Self Join)
이름그대로 자기자신 테이블과 조인을 하는 것을 말합니다. 원래 조인이 둘이상의 테이블에 대해 연관된 행들을 조인 컬럼을 기준으로 비교하여 새로운 행 집합을 만드는 것인데 연관된 테이블이 같은 테이블인 경우를 셀프조인(Self Join) 이라고 합니다. 셀프조인 역시 내부조인(Inner Join)의 한 종류 입니다.
한 개의 테이블을 두 개의 별도의 테이블처럼 이용하여 서로 조인 하는 형태인데 원하는 데이터들이 한 테이블에 있는 경우, 테이블의 각행이 다른 행의 값과 결합되어 있는 경우에 사용하며 같은 테이블을 두번 사용하므로 테이블 별칭을 반드시 사용해야 하는 조인 입니다.
한 테이블의 외래키 컬럼이 자기 자신테이블의 주키(Primary Key)를 참조하는 경우 이용하게 되는데, 사원(EMP) 테이블에서 MGR 컬럼은 관리자 컬럼이고 외래키(Foreign Key)로써 관리자도 사원이므로 자기자신 테이블 EMP의 사번(EMPNO, Primary Key) 컬럼을 참조 합니다.
EMP 테이블에서 사원 이름과, 관리자 이름을 같이 출력하는 경우 MGR 컬럼 값을 자기 자신 테이블의 사번(empno)과 조인을 해야 이름을 알수 있습니다. 이와같이 보통 한 행(ROW)에 두개의 레코드 정보를 보여 주고자 할 때 유용합니다.
<실행결과>