SQL 연습

[프로그래머스] 우유와 요거트가 담긴 장바구니(SQL)

미스터로즈 2021. 10. 21. 08:49

문제 설명

 

문제풀이

 

1. 서브 쿼리를 이용한 문제풀이

SELECT
CART_ID
FROM 
CART_PRODUCTS
WHERE NAME = 'Milk' AND 
CART_ID IN (SELECT CART_ID
FROM CART_PRODUCTS
WHERE NAME = 'Yogurt')

 

2. Join을 이용한 문제풀이

SELECT
M.CART_ID
from
(Select CART_ID from CART_PRODUCTS Where NAME='Milk') M
JOIN (Select CART_ID from CART_PRODUCTS Where NAME='Yogurt') Y
ON M.CART_ID=Y.CART_ID
order by CART_ID;

 

※ 내 생각

이 문제는 2가지 방식으로 문제 해결을 할 수 있습니다.
- JOIN
- 서브 쿼리

1. JOIN을 이용하는 경우
2개의 조회에 대한 정보를 조인하면 됩니다.
Select Where 로 요거트를 찾은 경우와 Select Where 로 우유를 찾은 경우
이 두가지에 대해서 조인을 하고 CART_ID가 같은 경우를 찾아냅니다.

2. 서브 쿼리 Select Where에서 우유든 요거트든 하나를 찾고
AND로 CART_IN에 대한 서브쿼리를 작성해서 다른 하나를 찾아줍니다.