본문 바로가기
DATABASE/ORACLE

[Oracle] SQL Self Join

Self Join





SELF JOIN이란, 말 그대로 자기 자신과 조앤을 맺는 것



1
2
3
select e1.ename, e2.sal from emp e1, emp e2 where e1.empno = e2.empno;
 
select ename, sal from emp;
cs


똑같은 결과가 나오는데 왜 하는 것일까?


다음은 EMP 테이블의 내용이다.



여기서 SMITH 사원의 매니저(MRG)가 누군지 알고 싶을 때,

1행의 MGR칼럼의 값을 보면 7902이며, 12행의 EMPNO칼럼의 값과 동일한 것을 알 수 있다.


이렇듯, SMITH 사원의 매니저는 FORD라는 것을 알 수 있었고, 같은 테이블에 존재 하기 때문에 필요한 것이 SELF JOIN이다.

(한 테이블을 두개의 테이블 처럼 EQUI JOIN으로 조회 할 수 있다)


1
SELECT e1.ename, e2.ename FROM emp e1, emp e2 WHERE e1.mgr=e2.empno AND e1.ename ='SMITH';
cs


'DATABASE > ORACLE' 카테고리의 다른 글

[Oracle] SQL 서브쿼리  (2) 2018.04.21
[Oracle] SQL Outer Join / ANSI Join  (1) 2018.04.20
[Oracle] SQL JOIN  (0) 2018.04.20
[Oracle] SQL HAVING  (1) 2018.04.20
[Oracle] SQL GROUP BY 절  (0) 2018.04.20