본문 바로가기

[ORACLE] JOIN 종류와 사용법

I'm 영서 2022. 4. 8.
반응형

 

오라클에서 테이블간 JOIN 종류..

두개 이상의 테이블을 조인하여 사용할 수 있다.

 

1.INNER JOIN

2. OUTER JOIN

3. FULL OUTER JOIN 

 

3가지라고 생각하면 된다.

 

(A테이블 : 입장객 / B테이블 : 고객정보 라고 가정)

 

1. INNER JOIN

두 테이블간 공통되는 값을 조회

: (A ∩ B)

 -> 입장객 중 고객 정보가 있는 사람들

 

2. OUTER JOIN (RIGHT , LEFT)

 두 테이블간 공통되는 값과 한 테이블에만 존재하는 값을 조회

: (B ∪ ( A ∩ B)) OR (A ∪ ( A ∩ B))

 -> 고객정보가 없는 입장객을 포함한 총 입장객 이 될 수 있다.

 

3. FULL OUTER JOIN 

 두 테이블에 존재하는 모든 값 조회

: B ∪ A

 -> 모든 고객정보와 모든 입장객 정보가 될 수 있다.

 

 

 

각각에 대해 문법은 

-- 일반 JOIN
SELECT *
   FROM TABLE_1 A
        JOIN TABLE_2 B
     ON (A.COL1     = B.COL1
         AND A.COL2 = B.COL2)
-- INNER JOIN
SELECT *
   FROM TABLE_1 A
        INNER JOIN TABLE_2 B
     ON (A.COL1     = B.COL1
         AND A.COL2 = B.COL2)         
         
-- RIGHT(LEFT) OUTER JOIN
SELECT *
   FROM TABLE_1 A
        RIGHT(LEFT) OUTER JOIN TABLE_2 B
     ON (A.COL1     = B.COL1
         AND A.COL2 = B.COL2)         
         
-- FULL OUTER JOIN
SELECT *
   FROM TABLE_1 A
        FULL OUTER JOIN TABLE_2 B
     ON (A.COL1     = B.COL1
         AND A.COL2 = B.COL2)

 

 

현업에서는 이런 JOIN을 사용해야 할 경우가 발생하는데

상품데이터를 기준으로  

A. 판매데이터

B. 출고데이터

C. 입고데이터

3개의 테이블에서 판매,출고,입고중 한 개라도 발생한 데이터의 경우 전부 출력해줘야 하는 경우가 있엇고

해당 3개의 테이블을 하나의 WITH문으로 작성하여 발생한 데이터를 가져와 해결하였다..

 

반응형

댓글