본문 바로가기

Programming/DataBase

[SQL]OUTER JOIN(외부조인)에 대해 알아보자!

728x90
반응형

 

 

 

 

▣OUTER JOIN(외부조인)이란?

   ▷OUTER JOIN은 조인하는 여러테이블에서 한 쪽에는 데이터가 있고, 한 쪽에는 데이터가 없는 경우, 데이터가 있는 쪽 테이블의 내용을 모두 출력하는 것입니다. 즉, 조건에 맞지 않아도 해당하는 행을 출력하고 싶을 때 사용할 수 있습니다.

 

▣OUTER JOIN의 종류

 

 

  1) LEFT OUTER JOIN : 조인문의 왼쪽에 있는 테이블의 모든 결과를 가져 온 후 오른쪽 테이블의 데이터를 매칭하고, 매칭되는 데이터가 없는 경우 NULL로 표시한다.

   ex) SELECT 검색할 컬럼

        FROM 테이블명 LEFT OUTER JOIN 테이블명2

 

        ON 테이블.컬럼= 테이블2.컬럼명;

 

       <ORACLE>

        SELECT 검색할 컬럼

        FROM 테이블명, 테이블명2

 

        WHERE 테이블.컬럼명 = 테이블2.컬럼명(+);

 

 

(결과)

                    

        TEST 테이블                        TEST1 테이블

 



  2) RIGHT OUTER JOIN : 조인문의 오른쪽에 있는 테이블의 모든 결과를 가져온 후 왼쪽의 테이블의 데이터를 매칭하고, 매칭되는 데이터가 없는 경우 NULL을 표시한다.

   ex) SELECT 검색할 컬럼

 

        FROM 테이블명 RIGHT OUTER JOIN 테이블명2

        ON 테이블명 = 테이블명2;

 

 

       <ORACLE>

        SELECT 검색할 컬럼

        FROM 테이블명, 테이블명2

        WHERE 테이블.컬럼명(+) = 테이블2.컬럼명;

 

 (결과)

              

       TEST 테이블                       TEST1 테이블


 



  3) FULL OUTER JOIN : LEFT OUTER JOIN 과 RIGHT OUTER JOIN을 합친 것으로, 양쪽 모두 조건이 일치하지 않는 것까지 모두 결합해 출력한다

    ex) SELECT 검색할 컬럼

         FROM 테이블명 FULL OUTER JOIN 테이블명2

 

 

         ON 테이블.컬럼명 = 테이블2.컬럼명; (ORACLE의 경우)

 

※ MySQL에서는 FULL OUTER JOIN이 없으므로,

 LEFT OUTER JOIN 과 RIGHT OUTER JOIN을 UNION 하는 식으로 하여 FULL OUTER JOIN을 만들어 준다.

 

(결과)

              

      TEST 테이블                      TEST1 테이블

반응형