반응형
아래는 문제 링크입니다.
https://programmers.co.kr/learn/courses/30/lessons/62284
아래는 정답 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 문제인데 해결해서 기분이 꽤 짜릿했다.
내일이 모바일 프로그래밍 시험이지만..ㅎㅎ 일단 포스팅 완료!!! 더욱 더 열심히 하자!!!
이상으로 포스팅을 마칩니다. 감사합니다.
반응형
댓글