PS/SQL
[SQL] 우유와 요거트가 담긴 장바구니
행복한라이언
2024. 2. 12. 14:52
728x90
반응형
문제링크
https://school.programmers.co.kr/learn/courses/30/lessons/62284
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
1. 핵심
- 교집합을 활용한 풀이
- 방법1. milk, yogurt 테이블을 각각 만들어서 inner join하는 풀이 + inner join의 경우 중복된 id를 처리하기 위해서 distinct
- 방법2. 집합연산사 intersect를 사용해서 우유와 요거트가 모두 있는 id 구하기
2. 코드(MySQL)
-- 코드를 입력하세요
# 우유와 요거트 동시 구입한 장바구니
# 장바구니의 id 조회
# id 순으로 오름차순
with milk as (
select CART_ID
from CART_PRODUCTS
where NAME in ('Milk')
),
yogurt as (
select CART_ID
from CART_PRODUCTS
where NAME in ('Yogurt')
)
select distinct(M.CART_ID)
from milk M
inner join yogurt Y on M.CART_ID = Y.CART_ID
order by M.CART_ID asc;
with temp as (
select CART_ID
from CART_PRODUCTS
where NAME in ('Milk')
intersect
select CART_ID
from CART_PRODUCTS
where NAME in ('Yogurt')
)
select CART_ID
from temp
order by CART_ID;
728x90
반응형