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
반응형
'PS > SQL' 카테고리의 다른 글
[SQL] 오랜 기간 보호한 동물(2) (0) | 2024.02.17 |
---|---|
[SQL] 자동차 대여 기록 별 대여 금액 구하기 (0) | 2024.02.15 |
[SQL] 조건에 맞는 사용자 정보 조회하기 (1) | 2024.02.12 |
[SQL] 자동차 평균 대여 기간 구하기 (0) | 2024.02.12 |
[SQL] 특정 기간동안 대여 가능한 자동차들의 대여비용 구하기 (0) | 2024.02.11 |