본문 바로가기

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

우유와 요거트가 담긴 장바구니

 

프로그래머스 문제

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

 

 

풀이

https://school.programmers.co.kr/questions/74722

 

 

 

 

 

# 풀이 쿼리

SELECT DISTINCT CART_ID
    FROM CART_PRODUCTS
    WHERE NAME ='Yogurt'
        AND CART_ID IN (
            SELECT CART_ID
                FROM CART_PRODUCTS
                WHERE NAME = 'MILK')
    ORDER BY CART_ID

 

 

조금만 생각해보면 간단한 문제다. 

요거트(혹은 우유)가 담긴 장바구니의 ID 중 우유(혹은 요거트)가 담긴 장바구니의 ID를 찾으면 되는 것이다.

 

서브쿼리 하나만 사용하면 된다. JOIN이나 CASE WHEN 구문 등... 이런 조건들은 쓰면 괜히 가독성만 떨어지고 쿼리를 복잡하게만 한다.

 

어떤 문제를 풀던 중요한 건, 문제에서 요구하는게 뭔지를 정확하게 파악하는 것 같다.