join 질문 하고싶습니다. 0 2 654

by 라인란 [MySQL] [2021.01.20 20:59:45]


 

1. 판매 정책테이블(sales)

id menu_id sales_name
1 9 무료 정책
2 10 유료 정책


2. 메뉴 테이블(menu)

id menu_name
9 강남점 메뉴
10 부산점 메뉴

 

3. 상품테이블(product)

id menus_id product_name
1 10 바닐라라뗴
2 10 딸기라떼

 

ex)

판매 정책 테이블에서 id=2 를 클릭하면  메뉴테이블의 menu_id인 id =10번인 부산점 메뉴를   찾아간다음   상품 테이블의 부산점 메뉴의 속하는 상품들을 모두 보여주고 싶은데 db를 어떻게 짜야 할지 모르겠습니다.

by 마농 [2021.01.21 08:11:54]
WITH sales AS
(
SELECT 1 id, 9 menu_id, '무료 정책' sales_name
UNION ALL SELECT 2, 10, '유료 정책'
)
, menu AS
(
SELECT 9 id, '강남점 메뉴' menu_name
UNION ALL SELECT 10, '부산점 메뉴'
)
, product AS
(
SELECT 1 id, 10 menus_id, '바닐라라뗴' product_name
UNION ALL SELECT 2, 10, '딸기라떼'
)
SELECT s.id AS sale_id
     , s.sales_name
     , s.menu_id
     , m.menu_name
     , p.id AS product_id
     , p.product_name
  FROM sales s
  LEFT OUTER JOIN menu m
    ON s.menu_id = m.id
  LEFT OUTER JOIN product p
    ON m.id = p.menus_id
 WHERE s.id = 2
;
-- http://gurubee.net/lecture/1020

 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입