Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

MySQL 유니온으로 두 테이블을 병합하여 새 테이블을 만드는 방법은 무엇입니까?

<시간/>

다음은 MySQL Union을 사용하여 두 테이블을 병합하는 구문입니다.

create table yourTableName
(
   select *from yourTableName1
)
UNION
(
   select *from yourTableName2
);

위의 구문을 이해하기 위해 테이블을 생성해 보겠습니다. 첫 번째 테이블을 생성하는 쿼리는 다음과 같습니다.

mysql> create table Old_TableDemo
   -> (
   -> UserId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   -> UserName varchar(20)
   -> );
Query OK, 0 rows affected (0.63 sec)

두 번째 테이블을 생성하는 쿼리는 다음과 같습니다.

mysql> create table Old_TableDemo2
   -> (
   -> UserId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   -> UserName varchar(20)
   -> );
Query OK, 0 rows affected (0.60 sec)

삽입 명령을 사용하여 첫 번째 테이블에 일부 레코드를 삽입하십시오. 쿼리는 다음과 같습니다 -

mysql> insert into Old_TableDemo(UserName) values('John');
Query OK, 1 row affected (0.22 sec)
mysql> insert into Old_TableDemo(UserName) values('Carol');
Query OK, 1 row affected (0.15 sec)

select 문을 사용하여 첫 번째 테이블의 모든 레코드를 표시합니다. 쿼리는 다음과 같습니다 -

mysql> select *from Old_TableDemo;

다음은 출력입니다.

+--------+----------+
| UserId | UserName |
+--------+----------+
|      1 | John     |
|      2 | Carol    |
+--------+----------+
2 rows in set (0.00 sec)

이제 insert 명령을 사용하여 두 번째 테이블에 일부 레코드를 삽입할 수 있습니다. 쿼리는 다음과 같습니다 -

mysql> insert into Old_TableDemo2(UserName) values('Larry');
Query OK, 1 row affected (0.22 sec)
mysql> insert into Old_TableDemo2(UserName) values('Sam');
Query OK, 1 row affected (0.10 sec)

select 문을 사용하여 두 번째 테이블의 모든 레코드를 표시합니다. 쿼리는 다음과 같습니다 -

mysql> select *from Old_TableDemo2;

다음은 출력입니다.

+--------+----------+
| UserId | UserName |
+--------+----------+
|      1 | Larry    |
|      2 | Sam      |
+--------+----------+
2 rows in set (0.00 sec)

다음은 Union으로 두 테이블을 병합하여 새 테이블을 만드는 쿼리입니다.

mysql> create table UserTableDemo
   -> (
   -> select *from Old_TableDemo
   -> )
   -> UNION
   -> (
   -> select *from Old_TableDemo2
   -> );
Query OK, 4 rows affected (1.18 sec)
Records: 4 Duplicates: 0 Warnings: 0

새 테이블의 테이블 레코드를 확인해보자. 쿼리는 다음과 같습니다 -

mysql> select *from UserTableDemo;

다음은 출력입니다.

+--------+----------+
| UserId | UserName |
+--------+----------+
|      1 | John     |
|      2 | Carol    |
|      1 | Larry    |
|      2 | Sam      |
+--------+----------+
4 rows in set (0.00 sec)