프로그래머스_우유와 요거트가 담긴 장바구니

임정민·2023년 6월 11일

SQL 문제풀이

목록 보기
52/53
post-thumbnail

문제

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

풀이

SELECT CART_ID
    FROM CART_PRODUCTS
    WHERE CART_ID IN (SELECT CART_ID 
            FROM CART_PRODUCTS
            WHERE NAME = 'Milk') 
            AND NAME = 'Yogurt'
    ORDER BY CART_ID ASC;

장바구니 구매 테이블 문제입니다. CART_ID별 'Milk'와 'Yogurt'를 구매한 CART_ID를 출력하는 문제입니다. 하나의 데이터별로 하나의 품목만 내역만 나오기 때문에 단순 WHERE 으로 해결할 수 없었고 서브 쿼리를 통해 먼저 'Milk'를 구매한 CART_ID를 찾은 뒤 다시 이 CART_ID 중에서 'Yogurt'를 구매한 CART_ID를 찾는 방식으로 해결하였습니다.🦔🦔🦔

저의 풀이 이외에

SELECT DISTINCT A.CART_ID
FROM CART_PRODUCTS A INNER JOIN CART_PRODUCTS B ON A.CART_ID = B.CART_ID
WHERE A.NAME LIKE 'Milk' AND B.NAME LIKE 'Yogurt'
ORDER BY A.CART_ID

위와 같이 SELF JOIN을 활용하여 CART_ID로 연결하고 한 테이블에서 'Milk'를 구매한 CART_ID, 다시 동일 테이블에서 'Yogurt'를 구매한 CART_ID를 출력하는 방식의 풀이를 볼 수 있었습니다.🐥🐥🐥

감사합니다.

profile
https://github.com/min731

0개의 댓글