SQL
프로그래머스 SQL 우유와 요거트가 담긴 장바구니
KYBee
2022. 3. 1. 13:58
Data 구조
CART_PRODUCTS : 장바구니에 담긴 상품 정보를 담은 테이블
| NAME | TYPE |
| ID | INT |
| CART_ID | INT |
| NAME | VARCHAR |
| PRICE | INT |
문제
데이터 분석 팀에서는 우유(Milk)와 요거트(Yogurt)를 동시에 구입한 장바구니가 있는지 알아보려 합니다. 우유와 요거트를 동시에 구입한 장바구니의 아이디를 조회하는 SQL 문을 작성해주세요. 이때 결과는 장바구니의 아이디 순으로 나와야 합니다.
예시
Input:
| ID | CART_ID | NAME | PRICE |
| 1630 | 83 | Cereal | 3980 |
| 1631 | 83 | Multipurpose Supply | 3900 |
| 5491 | 286 | Yogurt | 2980 |
| 5504 | 286 | Milk | 1880 |
| 8435 | 448 | Milk | 1880 |
| 8437 | 448 | Yogurt | 2980 |
| 8438 | 448 | Tea | 11000 |
| 20236 | 1034 | Yogurt | 2980 |
| 20237 | 1034 | Butter | 4890 |
Output:
| CART_ID |
| 286 |
| 448 |
정답:
Milk 를 구매한 카트 정보와 Yogurt 를 구매한 카트 정보를 INNER JOIN 하여 교집합을 찾으면 됩니다. SQL 쿼리를 보시면 직관적으로 이해할 수 있을 것 같습니다.
SELECT 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.ID;