프로그래머스 SQL kit

[SELECT] 오프라인/온라인 판매 데이터 통합하기 / UNION과 JOIN차이

정호나 2024. 11. 1. 16:20

UNION : 1개의 결과 세트 나타남, 중복제거

UNION ALL : 중복포함

JOIN : 적어도 하나의 속성이 공통이 두 테이블 속성을 결합할 때 사용

 

 

https://school.programmers.co.kr/learn/courses/30/lessons/131537

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

# UNION 사용하기, union이랑 join이랑 차이 공부
SELECT DATE_FORMAT(SALES_DATE,'%Y-%m-%d') AS SALES_DATE ,PRODUCT_ID,USER_ID,SALES_AMOUNT
FROM ONLINE_SALE 
WHERE SALES_DATE LIKE ("2022-03%")
UNION 

SELECT DATE_FORMAT(SALES_DATE,'%Y-%m-%d') AS SALES_DATE ,PRODUCT_ID,
Null AS USER_ID,SALES_AMOUNT
FROM OFFLINE_SALE 
WHERE SALES_DATE LIKE ("2022-03%")

ORDER BY SALES_DATE, PRODUCT_ID, USER_ID

 

 

OFFLINE_SALE 테이블의 판매 데이터의 USER_ID 값은 NULL 로 표시해주세요

 

-> NULL AS  USER_ID

 

 

JOIIN 대신 UNION 사용하는 이유

 

JOIN은 공통된 속성이 1개 이상 있어야 한다. 위 문제는 온라인과 오프라인에서 각각 2022년 3월에 구매한 정보를 구하는 것이기에 UNION이 적절하다