본문 바로가기

[MYSQL]특정 값 존재 여부 확인하기 (SUM(), EXISTS)

@silver-w2025. 8. 27. 15:00

관련문제 링크 : 프로그래머스 - 우유와 요거트가 담긴 장바구니

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

※ 문제 요지 : CART_PRODUCTS 테이블에서 'Milk'와 'Yogurt'가 있는 CART_ID를 출력

 방법  ① : MAX()이용하기
 방법  ② : SUM() 이용하기
 방법  ③ : EXISTS 이용하기

 

방법 ① : MAX()이용

 현 프로그래머스 문제 처럼 단순 데이터가 존재하는지 여부가 중요하다면 가장 유리한 방법이다.

SELECT CART_ID
FROM CART_PRODUCTS
GROUP BY CART_ID
HAVING MAX(NAME = 'Milk') AND MAX(NAME = 'Yogurt');

 

방법 ② : SUM() 이용

특정 조건의 데이터가 "몇 개"가 존재하는 지를 구할 때 사용한다

 

방법 ② : EXISTS 이용하기

 여러 테이블 간 존재 여부 파악시에 유리하다.

SELECT c1.CART_ID
FROM CART_PRODUCTS c1
WHERE EXISTS (
    SELECT 1 FROM CART_PRODUCTS c2 
    WHERE c2.CART_ID = c1.CART_ID AND c2.NAME = 'Milk'
)
AND EXISTS (
    SELECT 1 FROM CART_PRODUCTS c3
    WHERE c3.CART_ID = c1.CART_ID AND c3.NAME = 'Yogurt'
);

 

silver-w
@silver-w :: silver-w 님의 블로그

silver-w 님의 블로그 입니다.

공감하셨다면 ❤️ 구독도 환영합니다! 🤗

목차