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

오라클에서 LEFT OUTER JOIN은 아우터 조인(외부조인)에서 가장 많이 사용하는 방법 중 하나이다. LEFT OUTER JOIN은 OUTER 키워드를 생략하고 LEFT JOIN으로 사용하기도 한다. 아우터 조인은 조인할 테이블에 데이터가 없어도 기준 테이블의 데이터는 모두 출력되는 조인 방법이다. LEFT OUTER JOIN은 ANSI JOIN 문법이며 오라클 10g 이상에서 사용할 수 있다. 일반적인 오라클 조인과 ANSI JOIN의 비교는 하단의 링크를 참고하면 된다.

 

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

 

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

 

LEFT OUTER JOIN - 기본 사용법

SELECT a.empno
     , a.ename
     , a.job
     , a.deptno
     , b.dname
  FROM emp a
  LEFT OUTER JOIN dept b
    ON a.deptno = b.deptno
 WHERE a.job IN ('PRESIDENT', 'MANAGER')

 

 

emp 테이블과 dept 테이블을 LEFT OUTER JOIN을 한 예제이다.

LEFT의 의미는 왼쪽 테이블을 기준 테이블로 지정한다는 의미이다. ( emp LEFT OUTER JOIN dept )

조인된 dept 테이블에 데이터가 있을 경우 부서명(b.name)을 표시하고 없으면 NULL을 표시한다.

 

 

dept 테이블에 존재하는 부서코드(deptno) 10,20, 30은 정상적으로 조인이 되며 부서명을 표시할 수 있다.

deptno = 90은 조인이 되지 않기 때문에 부서명을 표시할 수 없다. 

 

 

아우터 조인은 조인할 테이블(dept)과 조인이 되지 않더라도 기준 테이블(emp)의 모든 데이터는 출력된다.

조인되지 않은 데이터는 조인 테이블의 데이터를 끌어와서 표시할 수 없다. (NULL로 표시)

 

 

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

 

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

SELECT a.empno
     , a.ename
     , a.job
     , a.deptno
     , b.dname
     , a.locno
  FROM emp a
  LEFT OUTER JOIN dept b
    ON a.deptno = b.deptno
   AND a.locno  = b.locno
 WHERE a.job IN ('PRESIDENT', 'MANAGER')

 

 

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

 

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

 

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

SELECT a.empno
     , a.ename
     , a.job
     , a.deptno
     , b.dname
     , a.locno
     , c.lname
  FROM emp a
  LEFT OUTER JOIN dept b
    ON a.deptno = b.deptno
  LEFT OUTER JOIN loc c
    ON a.locno = c.locno
 WHERE a.job IN ('PRESIDENT', 'MANAGER')

 

 

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

 

기준 테이블(emp)이 dept 테이블과 조인이 되면 dname을 표시하고, loc 테이블과 조인이 되면 lname을 표시한다.

조인이 되지 않으면 NULL이 표시된다. 아우터 조인은 조인이 되지 않더라도 기준 테이블의 모든 데이터는 출력된다.

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

 

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

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

gent.tistory.com

 

오라클 RIGHT OUTER JOIN 사용법

오라클에서 RIGHT OUTER JOIN은 아우터 조인(외부조인)에서 사용하는 방법 중 하나이다. RIGHT OUTER JOIN은 OUTER 키워드를 생략하고 RIGHT JOIN으로 사용하기도 한다. RIGHT OUTER JOIN은 ANSI JOIN 문법이며 오라클

gent.tistory.com

 

댓글

Designed by JB FACTORY