본문 바로가기
Data/MySQL

[MySQL] 결합 연산과 집합 연산 - UNION, UNION ALL

by prinha 2021. 1. 5.
728x90
반응형

 

결합 연산 : 가로 방향으로 합치는 것에 관한 연산(조인)

집합 연산 : 세로 방향으로 합치는 것에 관한 연산(합집합, 차집합, 교집합)


(1) A ∩ B (INTERSECT 연산자 사용)

SELECT * FROM A 

INTERSECT 

SELECT * FROM B

(2) A - B (MINUS 연산자 또는 EXCEPT 연산자 사용)

SELECT * FROM A 

MINUS

SELECT * FROM B

(3) B - A (MINUS 연산자 또는 EXCEPT 연산자 사용)

SELECT * FROM B

MINUS

SELECT * FROM A

(4) A U B (UNION 연산자 사용)

SELECT * FROM A

UNION

SELECT * FROM B

 

MySQL 8.0버전 기준으로 UNION연산자만 지원 (다른 DBMS에서는 모두 지원)


UNION

합집합을 나타내는 연산자로, 중복된 값을 제거해준다.

서로 같은 종류의 테이블(컬럼이 같아야함)에서만 적용이 된다.

SELECT * FROM ITEM
UNION
SELECT * FROM ITEM_NEW;

 

서로 다른 컬럼을 UNION할 때에는 에러가 난다.

SELECT * FROM ITEM
UNION
SELECT * FROM REVIEW;

 

서로 다른 종류의 테이블은 조회하는 컬럼을 일치시켜 집합 연산을 가능하게 한다.

SELECT ID FROM ITEM
UNION
SELECT ITEM_ID FROM REVIEW;

UNION ALL

합집합을 나타내는 연산자로, 중복된 값을 제거하지않는다. (교집합 출력)

SELECT * FROM ITEM
UNION ALL
SELECT * FROM ITEM_NEW;

 

 

728x90
반응형