UNION은 여러 개의 테이블 데이터를 묶어 하나의 결과로 출력합니다. 각각의 테이블에 대해서 SELECT 결과를 통하여 서로 결합된 내용을 출력합니다.
- 2개 또는 여러 개의 SELECT 결과를 결합니다.
- 결합되는 테이블의 컬럼의 자료형은 동일해야 합니다.
- 구조가 다른 테이블도 결과를 결합할 수 있습니다.
- 각각의 SELECT문의 컬럼 또한 동일한 순서로 있어야 합니다.
| 쿼리 문법 |
SELECT 컬럼1, 컬럼2 ... FROM 테이블1
UNION
SELECT 컬럼1, 컬럼2 ... FROM 테이블2;
2개의 SELECT 문장 사이에 UNION 키워드를 삽입하면 됩니다. 2개의 SELECT 결과를 모두 출력하게 됩니다.
19.1.1 쿼리 실습
다음은 UNION 결합을 통하여 2개의 회원 테이블을 하나의 데이터로 출력하는 실습입 니다. 아래 쿼리를 콘솔 모드에서 입력합니다.
| 예제 쿼리 |
select FirstName, LastName from members
union
select FirstName, LastName from members1;
2개의 select 쿼리 문장이 union으로 결합되어 있습니다. 실행을 하면 다음과 같습니다.
| 콘솔 실습 화면 |
mysql> select FirstName, LastName from members union select FirstName, LastName from members1;
+-----------+----------+
| FirstName | LastName |
+-----------+----------+
| lee | hojin |
| NULL | jiny |
| kim | james |
| jung | eric |
+-----------+----------+
4 rows in set (0.00 sec)
위의 예제는 2개의 SELECT 내용이 결합되어 하나의 결과로 출력되었습니다.
만일 SELECT로 결합 출력하려고 하는 2개의 테이블의 컬럼의 수가 동일하다면 전체를 의미하는 와일드 카드(*) 기호를 이용할 수도 있습니다.
| 예제 쿼리 |
(select * from members)
union
(select * from members1);
여러 개의 union을 결합할 때 혼동을 방지하기 위하여 괄호를 같이 사용하면 편리합니다.