Moments of growth

[MySQL] 오프라인/온라인 판매 데이터 통합하기 _ UNION 본문

카테고리 없음

[MySQL] 오프라인/온라인 판매 데이터 통합하기 _ UNION

뮤링이 2022. 12. 28. 22:37

 

SELECT DATE_FORMAT(SALES_DATE,'%Y-%m-%d') AS SALES_DATE, PRODUCT_ID, IFNULL(USER_ID, NULL) AS USER_ID, SALES_AMOUNT
FROM (
    SELECT SALES_DATE, PRODUCT_ID, USER_ID, SALES_AMOUNT FROM ONLINE_SALE
    UNION
    SELECT SALES_DATE, PRODUCT_ID, NULL, SALES_AMOUNT FROM OFFLINE_SALE
) AS T
WHERE SALES_DATE LIKE '2022-03%'
ORDER BY SALES_DATE, PRODUCT_ID, USER_ID

주의) FROM에서 UNION 한 테이블의 이름을 꼭 붙여줘야한다! -> 여기서는 AS T로 붙였음

 

 

UNION 연산자와 UNION ALL 연산자는 두 개 이상에 SQL 쿼리를 하나로 만들어주지만 차이나는 부분은 중복여부이다.

UNION 연산자를 사용할 시에는 각 쿼리에 컬럼 갯수 및 명칭을 맞춰줘야 되며 그렇지 않으면 오류가 발생한다.

Comments