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

유승선 ·2022년 9월 1일
0

SQL, JPQL

목록 보기
3/9

프로그래머스에 남은 마지막 SQL 문제를 풀어보았다. 솔직히 마지막이기도 해서 내 힘으로 잘 풀어보고 싶었지만 생각보다 어려웠어서 좀 많이 당황했다. 레벨4 문제기도 하고 진짜 코딩 테스트 볼때 처럼 어떤 아이디가 반짝 하는게 필요한거 같기도 하고 많은 연습이 요구 되는거같다.

문제는 간단하다, CART_ID 중에서 Milk 와 Yogurt 를 같이 담은 아이디를 출력하면 됐다.

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 

IN 문법을 사용해서 두번의 과정을 거쳐서 답을 뽑는게 가능했다. 처음 SUB-QUERY 에서는 Milk 를 포함한 CART_PRODUCTS 를 뽑고 그 다음 위에 QUERY 에서는 YOGURT 를 포함하면서 SUB-QUERY 에 포함된 CART_ID 를 출력하면 됐었다.

이 답 외에도 좀 맘에 들었다고 생각한 답중 하나는,

SELECT DISTINCT C.CART_ID 
FROM CART_PRODUCTS C, CART_PRODUCTS T
WHERE C.CART_ID = T.CART_ID 
AND (C.NAME ='우유' AND T.NAME ='요거트')
ORDER BY C.CART_ID

이런 식의 SELF JOIN 방법이었다.

배운점:
1. SELF JOIN 사용법
2. SUB-QUERY 와 동시에 연동하기

profile
성장하는 사람

0개의 댓글