ORACLE 공부하기!

[ORACLE] LEFT OUTER JOIN/RIGHT OUTER JOIN/FULL OUTER JOIN

hyer!! 2020. 12. 20. 21:21

1. LEFT OUTER JOIN

SELECT E,ENAME, D.LOC
FROM EMP E, DEPT D
WHERE E.DEPTNO = D.DEPTNO (+);

 

LEFT OUTER JOIN은 A테이블에는 데이터가 존재하지만 B테이블에는 데이터가 존재하지 않아 조건이 맞지 않더라도 A테이블의 전체 데이터가 출력이 되는 것이다.

 

2. RIGHT OUTER JOIN

SELECT E.ENAME, D.LOC
FROM EMP E, DEPT D
WHERE E.DEPTNO (+) = D.DEPTNO;

 

RIGHT OUTER JOIN은 B테이블에는 데이터가 존재하지만 A테이블에는 데이터가 존재하지 않아 조건이 맞지 않더라도 B테이블의 전체 데이터가 출력이 되는 것이다.

 

3. FULL OUTER JOIN

 

SELECT E.ENAME, D.LOC
FROM EMP E FULL OUTER JOIN DEPT D
ON (E.DEPTNO = D.DETPNO);

 

FULL OUTER JOIN은 A테이블 전체와 B테이블의 전체 데이터를 출력하는 것이다.

 

4. (+) 위치

OUTER JOIN의 "(+)" 는 조건절에서 A와 B테이블 중 데이터가 적은 쪽의 컬럼명 옆에 붙여준다!