본문으로 바로가기

[SQL] 10. 데이터 합치기 (JOIN)

category Skills/SQL 2021. 8. 5. 10:32
반응형
실습 데이터 (kaggle superstore)
  • orders
  • users
  • products
JOIN (Merge)

DB 안의 여러 테이블을 합치거나 연결하는 기능

두 개 이상의 테이블을 하나로 합치기 JOIN
  • 테이블명.컬럼명 으로 조회한다.
SELECT o.*, p.category, p.name
FROM data.orders AS o
JOIN data.products AS p
ON o.product_id = p.product_id
  • 세 테이블을 합칠 때는 두 테이블 조인에 이어서 적어주면 된다.
SELECT o.*, p.category, p.name, u.segment
FROM data.orders AS o
JOIN data.products AS p
ON o.product_id = p.product_id
JOIN data.users AS u
ON o.customer_id = u.customer_id
JOIN 방법에 따른 구분 : (INNER) JOIN
  • 교집합의 개념
  • 양쪽에 모두 다 들어있는 로우를 조인한다.
  • 유저 + 셀러 : 쿠팡의 경우, 물건을 파는 셀러와 그 물건을 구매하는 유저를 모두 포함하는 경우
JOIN 방법에 따른 구분 : FULL (OUTER) JOIN
  • 합집합의 개념
  • 양쪽 로우를 모두 다 조인한다.
  • 비어있는 값이 생긴다. (NULL)
  • 당월 판매 + 전월 판매 : 아주 가끔 사용
JOIN 방법에 따른 구분 : LEFT (OUTER) JOIN
  • 한 쪽 테이블의 데이터를 유지한 채 다른 쪽 데이터를 가져오는 JOIN
  • 왼쪽 데이터를 고정시킨 채로 왼쪽에 있는 항목만 오른쪽에서 가져온다.
  • 비어있는 값이 생긴다. (NULL)
  • 실제 업무에서는 대부분 LEFT JOIN을 사용한다.
  • 유저 + 구매 : 구매를 한 고객, 구매하지 않은 고객 모두 나옴.
JOIN 방법에 따른 구분 : RIGHT (OUTER) JOIN
  • LEFT JOIN의 방향만 반대되는 JOIN
  • 오른쪽 데이터를 고정시킨 채로 오른쪽에 있는 항목만 왼쪽에서 가져온다.
  • 비어있는 값이 생긴다. (NULL)
  • 실무에서 사용하지 않음
반응형