Database

[MySQL] UNION, UNION ALL 연산자 사용법

로넌 2022. 9. 19. 09:47

동일한 컬럼을 가지고 있는 두 테이블은 JOIN절을 사용할 수 있다. 만약, 동일한 컬럼을 가지고 있지 않지만 두 테이블을 합쳐야 하는 경우가 있다면? UNION, UNION ALL 연산자를 사용하자!

 

 

예제 테이블 1) 과일 테이블 

ID NAME
1 딸기
2 키위

예제 테이블 2) 과일2 테이블

ID NAME
3 딸기
4 참외

각각의 데이터를 SELECT문을 사용하여 추출할 수 있다.

SELECT ID, NAME FROM 과일 테이블;

SELECT ID, NAME FROM 과일2 테이블;

 

UNION ALL

하나의 쿼리를 만들기 위해 UNION ALL을 사용해보자. 

 

SELECT ID, NAME FROM 과일 테이블

UNION ALL

SELECT ID, NAME FROM 과일2 테이블;

 

ID NAME
1 딸기
2 키위
3 딸기
4 참외

UNION ALL 의 경우, 중복되는 값도 같이 출력되는 걸 확인할 수 있다.

중복되는 값을 제외한 데이터만을 얻고 싶으면 UNION을 사용하면 된다.

 

UNION

SELECT ID, NAME FROM 과일 테이블

UNION

SELECT ID, NAME FROM 과일2 테이블;

ID NAME
1 딸기
2 키위
4 참외

UNION과 UNION ALL 의 차이는 중복데이터 조회 여부에 있다.

주의할 점은 UNION을 사용할 경우, 쿼리에 컬럼 개수와 명칭을 맞춰줘야 한다.