본문 바로가기
DBMS/ORACLE

[ORACLE] 오라클_아우터 조인( OUTER JOIN )

by 썸머워즈 2019. 2. 22.
반응형

아우터 조인(Outer Join)

  • INNER JOIN과 반대되는 개념이다.
  • 데이터가 양쪽에 없다 하더라도 보여 줄 수 있는 JOIN이다.
    (Equi Join은 두개의 테이블 중 한쪽 컬럼에 값이 없다면 나머지 테이블의 값을 반환하지 못하는 것과 대비된다.)
  • outer join의 연산자는 오라클 한정으로 "(+)" 기호를 쓸 수 있다.
  • "(+)" 기호는 양쪽에 오지 못한다.
  • 조인 시 값이 없는 조인측에 "(+)"를 위치한다.

기본 사용법

SELECT DISTINCT emp.deptno,dept.deptno AS 팀번호 FROM emp, dept 
 WHERE emp.deptno(+) = dept.deptno;

추가 조건절에도 (+)를 붙여줘야 한다.

SELECT DISTINCT emp.deptno,dept.deptno AS 팀번호 FROM emp, dept 
WHERE emp.deptno(+) = dept.deptno;
    AND emp.name(+) LIKE '김%';

ANSI SQL 표준

  • ANSI SQL 표준은 값이 더 있는 쪽을 지목해줘야 한다.
  • LEFT OUTER JOIN (왼쪽에 값이 더 존재한다.)
  • RIGHT OUTER JOIN (오른쪽에 값이 더 존재한다.)
  • FULL OUTER JOIN (양쪽 다 각기 다른 값이 존재한다.)
SELECT emp.deptno , dept.deptno AS 팀번호
    FROM emp RIGHT OUTER JOIN dept
    ON emp.deptno = dept.deptno;
 

SELECT DISTINCT (emp.deptno), dept.deptno AS 팀번호
    FROM dept LEFT OUTER JOIN emp
    ON emp.deptno = dept.deptno;
 

SELECT DISTINCT (emp.deptno), dept.deptno AS 팀번호
    FROM dept FULL OUTER JOIN emp
    ON emp.deptno = dept.deptno

아무리 오라클을 사용한다 하더라도 현업에서는 사용하는 데이터베이스가 언제든 바뀔 수 있기 때문에,

ANSI 표준 SQL 방식을 사용하는 것을 추천한다.


 

반응형


댓글

TOP