반응형
실습 데이터 (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)
- 실무에서 사용하지 않음
반응형
'Skills > SQL' 카테고리의 다른 글
[SQL] 12. 테이블 세로로 연결하기 (UNION) (0) | 2021.08.05 |
---|---|
[SQL] 11. 테이블 연결하기 (ON과 WHERE 차이) (0) | 2021.08.05 |
[SQL] 09. 값을 요약하는 Aggregation 알아보기 (0) | 2021.08.04 |
[SQL] 08. 원하는 조건만 뽑아오기 (WHERE) - 2 (0) | 2021.07.29 |
[SQL] 07. 원하는 조건만 뽑아오기 (WHERE) - 1 (0) | 2021.07.29 |