
문제
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를 출력하는 방식의 풀이를 볼 수 있었습니다.🐥🐥🐥
감사합니다.