https://programmers.co.kr/learn/courses/30/lessons/62284
SELF JOIN 을 통해 해결했다. 답은 나오긴 했지만 상당히 비효율 적인 것 같아서 다른 풀이를 찾아봤다.
SELECT DISTINCT C1.CART_ID FROM CART_PRODUCTS C1 JOIN CART_PRODUCTS C2
ON C1.CART_ID = C2.CART_ID
WHERE (C1.NAME = 'Milk' and C2.NAME = 'Yogurt')
OR (C1.NAME = 'Yogurt' and C2.NAME = 'Milk')
ORDER BY CART_ID;
확실히 아래 풀이가 훨씬 깔끔하다 JOIN을 쓰면서 서브쿼리를 사용하면 좋은 것 같다.
SELECT DISTINCT A.CART_ID
FROM (SELECT CART_ID FROM CART_PRODUCTS WHERE NAME = 'Yogurt') A
INNER JOIN (SELECT CART_ID FROM CART_PRODUCTS WHERE NAME = 'Milk') B
ON A.CART_ID = B.CART_ID
'Programming > Programmers' 카테고리의 다른 글
[프로그래머스] 모두 0으로 만들기 (Python) (0) | 2021.11.17 |
---|---|
[프로그래머스] 입양 시각 구하기(2) (MySQL) (0) | 2021.11.17 |
[프로그래머스] 헤비 유저가 소유한 장소 (MySQL) (0) | 2021.11.16 |
[프로그래머스] DATETIME에서 DATE로 형 변환 (MySQL) (0) | 2021.11.16 |
[프로그래머스] 오랜 기간 보호한 동물 (2) (MySQL) (0) | 2021.11.16 |
댓글