Database

[MySQL] UNION

비번변경 2022. 6. 13. 17:59

UNION

여러 개의 SELECT문의 결과를 하나의 테이블로 표현할 때 사용한다.

각 SELECT문으로 선택한 필드의 개수와 타입, 순서는 모두 동일해야 한다.

 

용법

SELECT column_list
UNION [DISTINCT | ALL]
SELECT column_list
UNION [DISTINCT | ALL]
SELECT column_list
...

UNION 뒤의 연산자를 지정하지 않으면 기본적으로 DISTINCT로 동작하여 중복 행을 모두 제거한다.

 

예시 )

아래와 같이 student1, student2 테이블이 존재한다고 하자.

 

TABLE student1

example table1

 

TABLE student2

example table2

두 테이블에서 도시 이름을 한 번에 출력하고 싶다면 아래와 같이 UNION을 사용할 수 있다.

SELECT City FROM student1
UNION
SELECT City FROM student2
ORDER BY City;

UNION DISTINCT

 

UNION ALL

UNION ALL을 실행하는 경우 중복행이 제거되지 않은 결과를 확인할 수 있다.

 

SELECT City FROM student1
UNION ALL
SELECT City FROM student2
ORDER BY City;

UNION ALL

 

UNION vs JOIN

UNION과 JOIN 모두 여러 데이터를 하나의 테이블처럼 표현할 수 있다는 유사점이 있다. 단, UNION은 결과 집합이 수직으로 추가되고 JOIN은 결과 집합이 가로로 추가된다는 차이점이 있다.

UNION vs JOIN

 

참고 문서

https://w3cschoool.com/union-vs-union-all

https://w3cschoool.com/mysql-union

https://www.mysqltutorial.org/sql-union-mysql.aspx