초급 햄스터라 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

+ Recent posts