Every derived table must have its own alias
- 목차
MySQL에서 파생된 모든 테이블은 alias를 가져야한다.
MySQL과 Oracle은 from절에 서브 쿼리를 넣어 쿼리의 결과 테이블을 가지고 질의를 수행할 수 있다.
select *
from (
select
date_format(SALES_DATE, '%Y-%m-%d') SALES_DATE,
PRODUCT_ID,
USER_ID,
SALES_AMOUNT
from
ONLINE_SALE N
where
N.SALES_DATE between '2022-03-01' and '2022-03-31'
union all
select
date_format(SALES_DATE, '%Y-%m-%d') SALES_DATE,
PRODUCT_ID,
null USER_ID,
SALES_AMOUNT
from
OFFLINE_SALE F
where
F.SALES_DATE between '2022-03-01' and '2022-03-31'
) T
order by T.SALES_DATE, T.PRODUCT_ID, T.USER_ID
위 쿼리 내용이 중요한 것은 아니고
from절을 잘 살펴봐야 한다.
from절에 서브 쿼리를 통해 새로운 결과 테이블을 만드는데
from 절에 있는 서브 쿼리를 통해 파생된 결과 테이블에 T라는 alias를 주지 않으면 해당 에러가 발생한다.
해당 에러는 Oracle에서는 발생하지 않는다.