20240723 TIL
문제
데이터 분석 팀에서는 우유(Milk)와 요거트(Yogurt)를 동시에 구입한 장바구니가 있는지 알아보려 합니다. 우유와 요거트를 동시에 구입한 장바구니의 아이디를 조회하는 SQL 문을 작성해주세요. 이때 결과는 장바구니의 아이디 순으로 나와야 합니다.
<나의 풀이>
select cart_id
from cart_products
where cart_id in (
select cart_id
from cart_products
where name = 'Milk')
and name = 'Yogurt'
order by id
서브쿼리문을 이용한 문제 풀이
where절에서 2개를 동시에 비교하는 것은 없기 때문에 where절에 서브쿼리문을 이용하여 동시에 비교할 수 있도록 했다!
--> where cart_id in (
select cart_id
from cart_products
where name = 'Milk')
and name = 'Yogurt'
💡문제 자체가 처음 접해보는 문제라 좀 어려웠다. 동시에 구입한 장바구니를 알아보는거라서 처음엔 당연히 where 절을 이용하여 and를 사용해 해봤지만 결과물은 동시에 나오지 않고 따로 따로 나왔고, 또 어딘 우유가 있으면 요거트가 없고 요거트가 있으면 우유가 없어서 살짝 멘붕이었다..
그래서 계속 생각해보고 구글링도 해본 결과 서브쿼리를 이용하면 된다는 것을 발견했다. 서브쿼리는 항상 자주 써왔던거라 이렇게도 쓰일줄은 생각도 못했는데 머리를 한 방 맞은 기분이었다 ... ^^ ....
아직 SQL에 대해 한참 모르는 것 같아 공부를 열심히 해야겠다는 생각이 들었다
이 한 문제 푸는데 거의 1시간 걸린거 실화인가 ...... 효율 부족이다 완전 ㅠ.ㅠ
여튼 시간은 꽤 많이 써서 파이썬은 오전에 풀지 못했지만 서브쿼리가 이렇게 다양하게 사용된다는 것을 잘 알았기 때문에 그걸로 됐다 !!
'✨Today I Learned > MySQL' 카테고리의 다른 글
[MySQL] 대여 횟수가 많은 자동차들의 월 별 대여 횟수 구하기 (0) | 2024.08.01 |
---|---|
[MySQL] 자동차 대여 기록에 장기/단기 대여 구분하기 (1) | 2024.07.22 |
SQL codekata 58번 - 취소되지 않은 진료 예약 조회하기 (0) | 2024.07.16 |
SQL CODEKATA 55번 - 조건에 맞는 사용자 정보 조회하기 (0) | 2024.07.15 |
사전캠프 10일차 - SQL 5주차 정리 / SQL 코드카타 11번~19번 (0) | 2024.06.07 |