SQL 문제
문제 65. 우유와 요거트가 담긴(집합 연산자)
kagan-draca
2024. 7. 30. 17:42


처음에 2중 SELECT문으로 어떻게든
풀어볼려고 시도를 했는데
도무지 풀 수가 없었다...
다른 사람들의 코드를 찾아보니,
집합 연산자를 활용해 문제를 해결했다.
집합 연산자에는

연산자 | 의미 | 결과 |
UNION | 합집합 | 중복 제거한 결과의 합을 검색 |
UNION ALL | 중복을 포함한 결과의 합을 검색 | |
INTERSECT | 교집합 | 양쪽 모두에서 포함된 행을 검색 |
EXCEPT (Oracle : MINUS) |
차집합 | 첫 번째 검색 결과에서 두 번째 검색 결과를 제외한 너머지를 검색 |
합집합인 UNION, UNION ALL은
SELECT 컬럼
FROM 테이블
UNION
SELECT 컬럼
FROM 테이블
로 가능했다.
교집합인 INTERSECT는
SELECT 컬럼
FROM 테이블
INTERSECT
SELECT 컬럼
FROM 테이블
로 가능했다.
차집합인 EXCEPT(or MINUS)은
SELECT 컬럼
FROM 테이블
EXCEPT(or MINUS)
SELECT 컬럼
FROM 테이블
로 가능했다.
기존에 배운 JOIN과 집합 연산자는 다른 개념으로
집합 연산자는 주로 두 개 이상의 쿼리 결과를 결합하는 데 사용되고,
JOIN은 테이블 간의 관계를 통해 데이터를 결합하는 데 사용됩니다.
제출한 코드 :
SELECT CART_ID
FROM CART_PRODUCTS
WHERE NAME = 'Milk'
INTERSECT
SELECT CART_ID
FROM CART_PRODUCTS
WHERE NAME = 'Yogurt'
ORDER BY CART_ID ASC