초급 햄스터라 Join은 항상 2개의 테이블간에 해보았는데
강의를 듣던중 3개 테이블을 Join하게 되어 기록으로 남긴다.
Select * From (테이블1)
Join (테이블2) on (조건)
Join (테이블3) on (조건)
예제)
햄스터 마켓과 스토어에서 판매중인 모든 상품의 리스트(상품ID, 상품이름)를 출력하되
각 가게에서 취급하지 않는 상품은 NULL로 출력되도록 하라.
----------------------------------------------------------------
HamsterMarket 테이블에는 마켓ID, 상품ID, 상품이름이 담겨있음
HamsterStore 테이블에는 스토어ID, 상품ID, 상품이름이 담겨있음
----------------------------------------------------------------
HamsterMarket 테이블구조 및 입력데이터
HamsterStore 테이블구조 및 입력데이터
1. 출력 정보
- 모든 상품ID, 상품이름(햄스터 마켓과 햄스터 스토어 각각 판매중인 상품 전체 리스트 취합)
- 햄스터 마켓의 마켓ID(햄스터 마켓에서 취급하지 않는 상품은 마켓ID를 NULL로 출력)
- 햄스터 스토어의 스토어ID(햄스터 마켓에서 취급하지 않는 상품은 스토어ID를 NULL로 출력)
2. 출력 예시
3. 쿼리
select pro_list.product_id, pro_list.product_name, market_id, store_id from(
(select product_id, product_name from test.hamstermarket
union
select product_id, product_name from test.hamsterstore) as pro_list)
left join test.hamstermarket
on test.hamstermarket.product_id = pro_list.product_id
left join test.hamsterstore
on test.hamsterstore.product_id = pro_list.product_id
order by pro_list.product_id;
'SQL' 카테고리의 다른 글
MyBatis 오류 (0) | 2022.01.18 |
---|---|
STS(Eclipse?) 마이바티스 자동완성 기능 오류 (0) | 2021.12.06 |