동캄의 코딩도장

프로그래머스 level4 [우유와 요거트가 담긴 장바구니] 본문

코테/프로그래머스 sql

프로그래머스 level4 [우유와 요거트가 담긴 장바구니]

동 캄 2022. 1. 5. 17:12

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

 

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

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

programmers.co.kr

-- 코드를 입력하세요
SELECT distinct(c1.CART_ID)
from CART_PRODUCTS c1 inner join CART_PRODUCTS c2 on c1.CART_ID=c2.CART_ID
where c1.NAME='Milk' and c2.NAME='Yogurt'
order by c1.CART_ID, c1.ID

inner join을 이용하여 문제를 해결하였다. (코드 효율성은 그렇게 좋지 못하다고 생각된다...)

 

SELECT CART_ID
  FROM CART_PRODUCTS
 WHERE NAME IN ('Milk','Yogurt')
 GROUP BY CART_ID
 HAVING COUNT(DISTINCT NAME)=2

다른 분의 풀이로 JOIN을 사용하지 않고, group by를 통해 해결하였다.