https://school.programmers.co.kr/learn/courses/30/lessons/62284
inner join으로 모든 조합을 구한 다음 왼쪽 테이블에서는 Milk, 오른쪽 테이블에서는 Yogurt를 가지는 id를 조회하는 방법을 사용했다.
select a.cart_id as cart_id
from CART_PRODUCTS as a inner join CART_PRODUCTS as b
on a.cart_id = b.cart_id
where a.name like 'Milk' and b.name like 'Yogurt'
더 좋은 방법이 있을 거 같아서 찾아보았다.
Milk와 Yogurt만을 가지는 데이터만 남겨두고 cart_id에 대해 그룹화한다.
name의 Milk, Yogurt가 여러 개 있을 수 있으므로 DISTINCT를 해주고 이에 대한 카운트를 하여 2개이면 Milk와 Yogurt를 모두 산 데이터이다.
SELECT CART_ID
FROM CART_PRODUCTS
WHERE NAME IN ('Milk','Yogurt')
GROUP BY CART_ID
HAVING COUNT(DISTINCT NAME)=2
https://velog.io/@jokwed/%EC%9A%B0%EC%9C%A0%EC%99%80-%EC%9A%94%EA%B1%B0%ED%8A%B8%EA%B0%80-%EB%8B%B4%EA%B8%B4-%EC%9E%A5%EB%B0%94%EA%B5%AC%EB%8B%88SummerWinter-Coding2019
'코딩테스트 > MySQL' 카테고리의 다른 글
[프로그래머스 Level 4] 연간 평가점수에 해당하는 평가 등급 및 성과금 조회하기 (MySQL) (0) | 2025.02.09 |
---|---|
[프로그래머스 Level 4] 주문량이 많은 아이스크림들 조회하기 (MySQL) (0) | 2025.02.08 |
[프로그래머스 Level 4] 년, 월, 성별 별 상품 구매 회원 수 구하기 (MySQL) (0) | 2025.02.02 |
[프로그래머스 Level 4] 저자 별 카테고리 별 매출액 집계하기 (MySQL) (0) | 2025.01.31 |
[프로그래머스 Level 4] 서울에 위치한 식당 목록 출력하기 (MySQL) (0) | 2025.01.28 |