본문 바로가기

Algorithm/SQL

(MYSQL) - 프로그래머스 (Summer/Winter Coding(2019)) : 우유와 요거트가 담긴 장바구니

반응형

https://programmers.co.kr/learn/courses/30/lessons/62284

 

코딩테스트 연습 - 우유와 요거트가 담긴 장바구니

CART_PRODUCTS 테이블은 장바구니에 담긴 상품 정보를 담은 테이블입니다. CART_PRODUCTS 테이블의 구조는 다음과 같으며, ID, CART_ID, NAME, PRICE는 각각 테이블의 아이디, 장바구니의 아이디, 상품 종류, 가

programmers.co.kr

left outer join, group by를 사용하는 문제였습니다.

 

풀이방법

 1. 같은 테이블을 left outer join합니다

 

 2. outer table의 name이 'Yogurt'고 inner table의 name이 'Milk'인 경우거나

    outer table의 name이 'Milk'고 inner table의 name이 'Yogurt'인 경우인 outer table의 CART_ID들에 해당하는 tuple들을 모두 뽑아줍니다.

 

 3. outer table의 CART_ID에 대해 그룹화를 적용해줍니다.

 

Code

SELECT C.CART_ID FROM CART_PRODUCTS C
LEFT OUTER JOIN CART_PRODUCTS CC ON C.CART_ID = CC.CART_ID
WHERE (C.NAME = 'Yogurt' AND CC.NAME = 'Milk') OR (C.NAME = 'Milk' AND CC.NAME = 'Yogurt')
GROUP BY C.CART_ID