반응형
SELECT CART_ID
FROM CART_PRODUCTS
WHERE 1=1
AND NAME = 'Yogurt'
AND CART_ID in (SELECT CART_ID
FROM CART_PRODUCTS
WHERE 1=1
AND NAME = 'Milk')
GROUP BY 1
ORDER BY 1
문제
우유와 요거트를 동시에 구입한 장바구니의 아이디를 조회하는 SQL 문을 작성 후 결과는 장바구니의 아이디 순으로
다양한 풀이 방법이 있지만 시각적으로 보기편하고 이해하기 쉽게 풀었습니다.
먼저 우유와 요거트가 동시에 값에 있어야 합니다. 그래서 임시로 서브쿼리를 파 Milk가 NAME 컬럼에 있는 CART_ID 집합을 생성해 주었습니다. 이 집합은 값이 여러개 담겨 있기때문에 in 으로 메인 쿼리의 CART_ID와 연결해 주었습니다.
그리고 다른 필터 조건으로는 Yogurt의 값을 가진 CART_ID를 필터링 해 주었습니다. 그러면 YOGURT 값을 가진 CART_ID 와 Milk 값을 가진 CART_ID 가 AND 조건으로 묶여 교집합 되는 결과 값이 나옵니다.
그러고 CART_ID 별로 묶어서 값을 보기에 GROUP BY로 처리해 주었습니다 (SELECT 절에서 distinct를 해주어도 무방합니다.)
그 후 정렬하여 마무리 해주면 됩니다.
반응형
'SQL > MY SQL 문제 풀이(프로그래머스)' 카테고리의 다른 글
[MYSQL] PROGRAMMERS_그룹별 조건에 맞는 식당 목록 출력하기 (0) | 2024.02.24 |
---|---|
[MYSQL] PROGRAMMERS_주문량이 많은 아이스크림들 조회하기 (0) | 2024.02.24 |
[MYSQL] PROGRAMMERS_저자 별 카테고리 별 매출액 집계하기 (0) | 2024.02.23 |
[MYSQL] PROGRAMMERS_년, 월, 성별 별 상품 구매 회원 수 구하기 (0) | 2024.02.23 |
[MYSQL] PROGRAMMERS_서울에 위치한 식당 목록 출력하기 (0) | 2024.02.23 |