Union은 MySQL의 연산자 유형입니다. 이것과 함께 ORDER BY를 사용하여 레코드를 필터링할 수 있습니다. 여러 테이블에서 차례로 행을 선택하거나 단일 테이블에서 여러 행 집합을 단일 결과 집합으로 선택하려면 UNION을 사용하십시오.
예를 들어 보겠습니다.
첫 번째 테이블 생성
mysql> create table UnionDemo1 -> ( -> id int -> ); Query OK, 0 rows affected (0.59 sec)
첫 번째 테이블에 레코드 삽입.
mysql> insert into UnionDemo1 values(1),(4),(10); Query OK, 3 rows affected (0.21 sec) Records: 3 Duplicates: 0 Warnings: 0
모든 기록을 표시합니다.
mysql> select *from UnionDemo1;
다음은 모든 레코드를 표시하는 출력입니다.
+------+ | id | +------+ | 1 | | 4 | | 10 | +------+ 3 rows in set (0.00 sec)
두 번째 테이블을 만들어 보겠습니다.
mysql> create table UnionDemo2 -> ( -> id int -> ); Query OK, 0 rows affected (0.54 sec)
두 번째 테이블에 레코드 삽입.
mysql> insert into UnionDemo2 values(2),(3),(5),(6),(7),(8),(9); Query OK, 7 rows affected (0.21 sec) Records: 7 Duplicates: 0 Warnings: 0
모든 기록을 표시합니다.
mysql> select *from UnionDemo2;
다음은 출력입니다.
+------+ | id | +------+ | 2 | | 3 | | 5 | | 6 | | 7 | | 8 | | 9 | +------+ 7 rows in set (0.00 sec)
이제 Order by와 함께 UNION을 적용하는 쿼리를 살펴보겠습니다.
mysql> select id from UnionDemo1 -> union -> select id from UnionDemo2 -> order by id desc;
다음은 출력입니다.
+------+ | id | +------+ | 10 | | 9 | | 8 | | 7 | | 6 | | 5 | | 4 | | 3 | | 2 | | 1 | +------+ 10 rows in set (0.05 sec)