[Oracle] 오라클 아우터 조인 (외부조인) 쉽게 설명 (Outer Join, Ansi Join)

오라클 쿼리문 작성이 익숙하지 않을 때 가장 헷갈렸던 부분이 아우터 조인(Outer Join)이다. 오라클 아우터 조인 시 대상 컬럼에 "(+)" 기호를 붙여서 조인을 하면된다.

 

아우터 조인을 사용하는 이유는 기준 테이블의 데이터가 모두 조회(누락 없이) 되고, 대상 테이블데이터가 있을 경우 해당 컬럼의 값을 가져오기 위해서이다.

 

핵심은 조인을 하더라도 기준 테이블의 데이터가 누락되지 않도록 하는 것이다.

 

 

위의 데이터를 보면 "KING", "JAMES"의 DEPTNO가 DEPT 테이블에 존재하지 않는다. 이 상태에서 조인으로 쿼리문을 작성하면 "KING", "JAMES"의 데이터는 조회되지 않는다.

 

아우터 조인으로 쿼리문을 작성하면 조인이 되면 DEPT 테이블의 데이터를 가져오고, 조인이 되지 않으면 DEPT 테이블의 데이터는 NULL로 조회되고 EMP 테이블의 데이터는 정상적으로 조회된다.

 

아우터 조인(외부조인)은 오라클 조인ANSI JOIN 두가지 방법으로 작성할 수 있다. 

 

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

 

 

오라클 아우터 조인(+) 예제

 

-  아우터 조인을 할 대상 테이블(dept)의 컬럼에 "(+)" 기호를 붙여서 조인한다.

-  기준 테이블(emp)의 deptno가 대상 테이블(dept)에 존재 할 경우 부서명(dname)를 가져오고 없으면 NULL로 조회된다.

-  기준 테이블(emp)의 데이터는 대상 테이블(dept)에 값이 없어도 모두 조회 되어야 한다.

 

-  아우터 조인 시 두개 이상의 컬럼의 사용하는 예제이다.

-  대상 테이블(dept)의 컬럼에 모두 "(+)" 기호를 붙여야 한다.

 

-  대상 테이블(dept)의 컬럼에 값을 대입해야 할 경우에도 해당 컬럼에 "(+)" 기호를 붙인다.

b.useyn(+) = "Y"에서 "(+)" 기호를 붙이지 않으면 "KING", "JAMES"의 데이터는 조회되지 않는다.

 

 

ANSI OUTER JOIN (LEFT,RIGHT) 예제

 

LEFT는 기준 테이블을 가리키는 구문이며, 왼쪽(LEFT) emp 테이블이 기준 테이블이 된다.

-  RIGHT로 바꾸면 dept 테이블이 기준 테이블이 된다.

-  WHERE절이 아니라 ON절에 조인 컬럼을 작성하면 된다.

 

-  두개 이상의 컬럼을 조인할 수 있다.

 

 

 

[Oracle] 오라클 BETWEEN 아우터 조인 방법

오라클에서 아우터 조인 시 BETWEEN 연산자를 사용해야 할 경우가 있다. 일반적인 아우터 조인과 상황이 조금 틀리기 때문에 당황할 수 있지만 조인 방법을 큰 차이가 없다. BETWEEN 연사자를 사용할

gent.tistory.com

 

[Oracle] 오라클 조인 방법 쉽게 설명 (ANSI JOIN, Oracle Join)

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

gent.tistory.com

 

댓글

Designed by JB FACTORY