-
[코딩테스트] 프로그래머스 - 우유와 요거트가 담긴 장바구니(MySQL, Level4)코딩테스트/프로그래머스 2022. 12. 9. 00:31728x90
안녕하세요~ 오늘 출근시간에 풀어본 DB문제입니다.
은근 어려웠지만 답은 나왔네요~
그치만 검색해보니 더 간단하면서도 쉬운쿼리들이 많네요.
더 배워야겠습니다!
문제입니다.
https://school.programmers.co.kr/learn/courses/30/lessons/62284
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
다음은 제가 작성한 쿼리입니다.
-- 코드를 입력하세요 SELECT mt.cart_id from (select cart_id, name from cart_products where name='Milk')as mt left join (select cart_id, name from cart_products where name='Yogurt')as yt on mt.cart_id=yt.cart_id where mt.name is not null and yt.name is not null order by mt.cart_id
쿼리에 대해 간단하게 설명드리자면
① Milk카테고리를 가진 데이터를 추출
② Yogurt카테고리를 가진 데이터를 추출
③ 다음 두 테이블을 outer join합니다. 그러면 각 컬럼에 Milk만 있을수도, Yogurt만 있을수도, 둘만 있을수도 있겠죠?
④ 여기서 Milk, Yogurt 컬럼 둘 다 갖고있는 Row만을 뽑아줍니다.
이런생각을 갖고했는데 Self Join으로 푸신분도 계시네요.
Join에 대해 좀더 공부해봐야겠습니다.
감사합니다. :D
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
[코딩테스트] 프로그래머스 - 헤비 유저가 소유한 장소(MySQL, Level3) (0) 2022.12.10 [코딩테스트] 프로그래머스 - 삼각 달팽이(Java, Level2) (0) 2022.12.10 [코딩테스트] 프로그래머스 - 큰 수 만들기(Java, Level2, 실패코드) (0) 2022.12.09 [코딩테스트] 프로그래머스 - 식품분류별 가장 비싼 식품의 정보 조회하기(MySQL, Level4) (0) 2022.12.07 [코딩테스트] 프로그래머스 - 124 나라의 숫자(Java, Level2) (0) 2022.12.07