[Oracle] 오라클 RIGHT OUTER JOIN 사용법

오라클에서 RIGHT OUTER JOIN은 아우터 조인(외부조인)에서 사용하는 방법 중 하나이다. RIGHT OUTER JOIN은 OUTER 키워드를 생략하고 RIGHT JOIN으로 사용하기도 한다. RIGHT OUTER JOIN은 ANSI JOIN 문법이며 오라클 10g 이상에서 사용할 수 있다. 일반적인 오라클 조인과 ANSI JOIN의 비교는 하단의 링크를 참고하면 된다.

 

RIGHT OUTER JOIN을 학습하기 전에 LEFT OUTER JOIN을 먼저 학습하면 이해하기 쉬울 것이다.

 

목차
  1. RIGHT OUTER JOIN - 기본 사용법
  2. RIGHT OUTER JOIN - 조인 칼럼이 여러 개인 경우
  3. RIGHT OUTER JOIN - 조인 테이블이 여러 개인 경우

 

※ 예제의 emp 테이블은 설명을 위해 인위적으로 만든 테이블이며 하단의 첨부파일을 참고하면 된다.

 

RIGHT OUTER JOIN - 기본 사용법

SELECT a.empno
     , a.ename
     , a.job
     , a.deptno
     , b.dname
  FROM emp a
 RIGHT OUTER JOIN dept b
    ON a.deptno = b.deptno
 WHERE b.deptno IN (10, 20, 30, 40)

 

 

emp 테이블과 dept 테이블 RIGHT OUTER JOIN 예제이다.
RIGHT의 의미는 오른쪽 테이블을 기준 테이블로 지정한다는 의미이다. ( emp RIGHT OUTER JOIN dept )


기준 테이블(dept)의 데이터(d.name)는 모두 표시된다.

조인 테이블(emp)은 조인된 데이터는 표시되고 조인되지 않은 데이터는 NULL이 표시된다.

 

deptno = 90은 조인이 되지 않기 때문에 empno, ename, job, deptno 값이 NULL로 표시된다.

 

아우터 조인은 조인이 되지 않더라도 기준 테이블(dept)의 모든 데이터는 출력된다.
조인되지 않은 데이터는 조인 테이블(emp)의 데이터를 끌어와서 표시할 수 없다. (NULL로 표시)

 

 

RIGHT OUTER JOIN은 OUTER 키워드를 생략하고 RIGHT JOIN으로 사용해도 동일한 결과가 조회된다.
특수한 상황이 아니면 OUTER 키워드를 같이 사용하는 것이 좋다.

 

RIGHT OUTER JOIN - 조인 칼럼이 여러 개인 경우

SELECT a.empno
     , a.ename
     , a.job
     , a.deptno
     , b.dname
     , b.locno
  FROM emp a
 RIGHT OUTER JOIN dept b
    ON a.deptno = b.deptno
   AND a.locno  = b.locno
 WHERE b.deptno IN (10, 20, 30, 40)

 

 

emp 테이블과 dept 테이블을 deptno, locno 두 개의 칼럼으로 RIGHT OUTER JOIN 하는 예제이다. 
조인 칼럼이 여러 개인 경우 AND를 순차적으로 사용하여 칼럼을 조인하면 된다.

 

deptno, locno 칼럼의 값이 동시에 일치할 경우 데이터를 표시하고, 일치하지 않으면 NULL을 표시하는 것을 확인할 수 있다.

 

RIGHT OUTER JOIN - 조인 테이블이 여러 개인 경우

SELECT a.empno
     , a.ename
     , a.job
     , b.deptno
     , b.dname
     , c.locno
     , c.lname
  FROM emp a
 RIGHT OUTER JOIN dept b
    ON a.deptno = b.deptno
 RIGHT OUTER JOIN loc c
    ON b.locno = c.locno 
 WHERE b.deptno IN (10, 20, 30, 40)

 

 

emp 테이블, dept 테이블, loc 테이블을 RIGHT OUTER JOIN 하는 예제이다.
조인할 테이블이 여러 개인 경우 위의 예제처럼 순차적으로 RIGHT OUTER JOIN을 사용하여 작성하면 된다.

 

 

emp 테이블과 dept 테이블이 먼저 조인되고 dept 테이블이 기준 테이블이 된다. 그리고 dept 테이블과 loc 테이블이 조인되며 loc 테이블이 기준 테이블이 된다.

 

위의 예제는 기준 테이블이 계속 바뀌게 되어서 조금 복잡해 보인다. 실무에서 쿼리문을 작성할 때는 기준 테이블을 대부분 1개의 테이블이 되도록 작성하며, 위의 예제는 원리를 설명하기 위해 작성한 예시이니 이점을 인지하고 봐야 한다.

예제쿼리(테이블포함).txt
0.00MB

 

오라클 조인 방법 비교 (ANSI JOIN, Oracle Join)

오라클에서 조인을 할 때 오라클 조인(Oracle Join)과 안시 조인(ANSI JOIN)을 사용할 수 있다. 오라클 9i 까지는 오라클 조인만 사용할 수 있으며, 오라클 10g부터는 안시 조인을 추가로 사용할 수 있다.

gent.tistory.com

 

오라클 LEFT OUTER JOIN 사용법

오라클에서 LEFT OUTER JOIN은 아우터 조인(외부조인)에서 가장 많이 사용하는 방법 중 하나이다. LEFT OUTER JOIN은 OUTER 키워드를 생략하고 LEFT JOIN으로 사용하기도 한다. 아우터 조인은 조인할 테이블

gent.tistory.com

 

댓글

Designed by JB FACTORY