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

 

+ Recent posts