SQL과 데이터베이스 - 조인과 집계 데이터 : OUTER JOIN


OUTER JOIN

이 학습은 패스트캠퍼스의 올인원 패키지 : 모두를 위한 SQL/DB 강의를 듣고 복습하는 내용입니다.

image

OUTER 조인 실습

: 저번 포스트에서 만들었던 BASKET_A와 BASKET_B 테이블을 사용한다

● LEFT OUTER 조인

SELECT
       A.ID    AS ID_A
     , A.FRUIT AS FRUIT_A
     , B.ID    AS ID_B
     , B.FRUIT AS FRUIT_B
  FROM
       BASKET_A A LEFT OUTER JOIN BASKET_B B 
  ON A.FRUIT = B.FRUIT;

image

>> BASEKT_A 테이블과 BASKET_B 테이블을 JOIN 하는데 BASKET_A를 기준집합으로 조인한다.

​ 즉, BASKET_A에 없는 FRUIT값이면 BASKET_B의 값들은 출력하지 않는다.

image

● LEFT OUTER 조인 - LEFT ONLY

 SELECT
      A.ID    AS ID_A
    , A.FRUIT AS FRUIT_A
    , B.ID    AS ID_B
    , B.FRUIT AS FRUIT_B
 FROM
      BASKET_A A
LEFT OUTER JOIN BASKET_B B 
  ON A.FRUIT = B.FRUIT
WHERE B.ID IS NULL; --LEFT ONLY 

image

>> WHERE B.ID IS NULL; 부분만 추가된 것이다.

​ 즉, 위의 결과에서 B테이블이 NULL인 것만 출력하는 것이다. (A기준으로 B와 겹치는 부분 출력 제외)

image

● RIGHT OUTER 조인

SELECT
       A.ID    AS ID_A
     , A.FRUIT AS FRUIT_A
     , B.ID    AS ID_B
     , B.FRUIT AS FRUIT_B
  FROM
       BASKET_A A
RIGHT OUTER JOIN BASKET_B B 
  ON A.FRUIT = B.FRUIT;

image

>> BASKET_A 테이블과 BASKET_B 테이블을 조인하는데 BASKET_B를 기준집합으로 조인한다.

​ 즉, BASKET_B에 없는 FRUIT 값이면 BASKET_A의 값들은 출력하지 않는다.

image

● RIGHT OUTER 조인 - RIGHT ONLY

 SELECT
       A.ID AS ID_A
     , A.FRUIT AS FRUIT_A
     , B.ID AS ID_B
     , B.FRUIT AS FRUIT_B
  FROM
       BASKET_A A
RIGHT OUTER JOIN BASKET_B B 
  ON A.FRUIT = B.FRUIT
WHERE A.ID IS NULL;

image

>> WHERE A.ID IS NULL; 부분만 추가된 것이다.

​ 즉, 위의 결과에서 A테이블이 NULL인 것만 출력하는 것이다. (B기준으로 A와 겹치는 부분 출력 제외)

image

## 사용 예시

- 기준집합이 있고, 보고자하는 집합을 출력하고자 한다. 고객은 다 보고싶고, 계약 유무와 상관없이 고객을 다 보고싶다.

그러나, 어느 순간에는 계약한 고객들을 보는것이 더 좋을수도 있다.


© 2021. All rights reserved.

----------Powered by Hydejack----------

kyusang Hwang