SELECT date_format(sales_date,'%Y-%m-%d') SALES_DATE,product_id,user_id,sales_amount
from online_sale
where MONTH(sales_date)=3
union
SELECT date_format(sales_date,'%Y-%m-%d') SALES_DATE,product_id,null,sales_amount
from offline_sale
where MONTH(sales_date)=3
order by 1 asc,2 asc,3 asc
두 개 이상의 쿼리 결과를 하나로 합칠 때 사용하는 명령어
중복을 제거하는지 여부에서 차이점
연산자 | 중복 제거 | 속도 | 사용 예시 |
---|---|---|---|
UNION | 중복 제거 O | 느림 | 중복된 데이터를 제외하고 결과를 합칠 때 |
UNION ALL | 중복 제거 X | 빠름 | 중복을 포함한 전체 데이터를 합칠 때 |
# UNION
-- 중복 제거 (느림)
SELECT column FROM Table1
UNION
SELECT column FROM Table2;
# UNION ALL
-- 중복 포함 (빠름)
SELECT column FROM Table1
UNION ALL
SELECT column FROM Table2;
select *
from (
SELECT date_format(sales_date,'%Y-%m-%d') SALES_DATE,product_id,user_id,sales_amount
from online_sale
union all
SELECT date_format(sales_date,'%Y-%m-%d') SALES_DATE,product_id,null,sales_amount
from offline_sale) AS combined_sales
where MONTH(sales_date)=3
order by 1 asc,2 asc,3 asc
UNION ALL
사용했다.