일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 다익스트라
- SQL코딩테스트
- GROUPBY
- OrderBy
- union find
- EC2
- Baekjoon
- 피로그래밍
- 코딩테스트
- 자바
- db
- django
- 프로그래머스
- Java
- Database
- 누적합
- AWS
- 크루스칼
- 배포
- 프림
- 최단경로
- BFS
- Pirogramming
- 백준
- 그래프 탐색
- 알고리즘
- MST
- JOIN
- 구현
- 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