| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
Tags
- Java
- OrderBy
- 피로그래밍
- 프로그래머스
- GROUPBY
- 백준
- 알고리즘
- 자바
- Database
- 크루스칼
- Baekjoon
- 다익스트라
- EC2
- SQL
- BFS
- union find
- 구현
- JOIN
- MST
- 프림
- 그래프 탐색
- 누적합
- 배포
- 코딩테스트
- db
- 최단경로
- AWS
- Pirogramming
- django
- SQL코딩테스트
Archives
- Today
- Total
NullNull
프로그래머스 SQL 우유와 요거트가 담긴 장바구니 본문
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;'SQL' 카테고리의 다른 글
| 프로그래머스 SQL 헤비 유저가 소유한 장소 (0) | 2022.03.01 |
|---|---|
| 프로그래머스 SQL DATETIME에서 DATE로 형 변환 (0) | 2022.03.01 |
| 프로그래머스 SQL 오랜 기간 보호한 동물(2) (0) | 2022.03.01 |
| 프로그래머스 SQL 중성화 여부 파악하기 (0) | 2022.03.01 |
| 프로그래머스 SQL 이름에 el이 들어가는 동물 찾기 (0) | 2022.03.01 |
Comments