코딩테스트/프로그래머스

SQL 문제 - 우유와 요거트가 담긴 장바구니

Debin 2022. 5. 1.
반응형

아래는 문제 링크입니다.

https://programmers.co.kr/learn/courses/30/lessons/62284

 

코딩테스트 연습 - 우유와 요거트가 담긴 장바구니

CART_PRODUCTS 테이블은 장바구니에 담긴 상품 정보를 담은 테이블입니다. CART_PRODUCTS 테이블의 구조는 다음과 같으며, ID, CART_ID, NAME, PRICE는 각각 테이블의 아이디, 장바구니의 아이디, 상품 종류, 가

programmers.co.kr

아래는 정답 SQL 문이다.

SELECT c1.CART_ID FROM CART_PRODUCTS as c1 
JOIN 
(SELECT CART_ID FROM CART_PRODUCTS WHERE NAME in ('Milk')) c2
on c1.CART_ID = c2.CART_ID
WHERE NAME in ('Yogurt')

 

먼저 제일 처음 생각한 건 Self Join 이었다. 또 다시 곰곰히 생각해보았다.

본인이 생각해낸 아이디어는 Yogurt만 담은 테이블에 Milk만 담은 카드 아이디 단일 행을 조인하는 것이다.

이렇게 조인을 한 후, Yogurt만 담은 카드 아이디와 Milk만 담은 카드아이디가 같다면,

이것은 Yogurt와 Milk를 둘 다 카트에 담은 것이므로 정답을 도출 할 수있다.

이런 방식으로 문제를 해결할 수 있었다.

 

지금까지 푼 SQL 문제 중에 제일 오래 걸린 것 같다. 이번에도 Dev-Matching 문제인데 해결해서 기분이 꽤 짜릿했다.

내일이 모바일 프로그래밍 시험이지만..ㅎㅎ 일단 포스팅 완료!!! 더욱 더 열심히 하자!!!

 

이상으로 포스팅을 마칩니다. 감사합니다.

반응형

댓글