ID가 3번
인 고객의 이름과, 이메일 그리고 즐겨찾기한 메뉴 이름을 출력하는 목록의 2페이지 내용을 모두 출력하시오(단, 페이징 처리를 해야하고 1페이지당 10개의 목록
을 가져온다고 가정합니다, 또한 메뉴이름을 오름차순
으로 정렬하세요)SELECT c.name, c.email, m.name FROM customer c
inner join menu_like ml on c.id = ml.customer_id
inner join menu m on ml.menu_id = m.id
where c.id = 3
order by m.name
limit 10 offset 10;
✅
서울
”로 시작하고 주문 금액이 20,000원 이상이고 40,000원 이하
인 주문의 주문ID, 주문자명, 총 주문 금액을 출력하세요select o.id, o.orderer_name, sum(om.price * om.count) as 총주문금액 from `order` o
inner join order_menu om on o.id = om.order_id
where shipping_address like '서울%'
group by o.id
having 총주문금액 between 20000 and 40000;
✅
(피자, 양식, 간편식)에 속하고 카테고리의 이미지가 존재하는
매장의 매장이름과 메뉴이름을 출력하세요1) 메뉴 기준
select m.name, s.name from menu m
inner join store s on m.store_id = s.id
inner join food_category fc on s.food_category_id = fc.id
where fc.name in ('피자', '양식', '간편식') and fc.image_url is not null
select s.name, m. from store sinner join menu m on s.id = m.store_idselect from food_category
2) 상점 기준 (어제 내가 시도한 방식)
select m.name, s.name from store s
inner join food_category fc on s.food_category_id = fc.id
inner join menu m on s.id = m.store_id
where fc.name in ('피자', '양식', '간편식')
✅
둘 다 잘 된다. 어제는 group by를 하려고 해서 메뉴가 다 안떴던것 같다.
왜 상점별로 여러 개의 메뉴가 있는데 하나만 뜰까 이렇게 생각했는데.
1) 총 주문금액이 50000 미만
이면 “쪽박
”
2) 총 주문금액이 100,000원 미만
이면 “중박
”
3) 총 주문금액이 100,000원 이상
이면 “대박
”
select om.order_id, *sum*(om.price * om.count) as 총주문금액,
CASE
when *sum*(om.price * om.count) < 50000 then '쪽박'
when *sum*(om.price * om.count) < 100000 then '중박'
else '대박'
end as 성과분류
from order_menu omgroup by order_id;
✅