Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL에서 두 테이블을 UNION으로 결합하고 새로운 열을 추가하는 방법

MySQL에서 UNION 연산자를 사용하면 두 개 이상의 테이블 조회 결과를 하나로 합칠 수 있습니다. 여기에 각 SELECT 절에 상수 값과 AS 별칭을 함께 지정하면, 기존 테이블에는 없는 새로운 열을 추가한 것과 같은 결과를 얻을 수 있습니다. 아래 예제를 통해 단계별로 살펴보겠습니다.

1. 첫 번째 테이블 생성

먼저 DemoTable1이라는 이름의 테이블을 생성합니다.

mysql> create table DemoTable1
   -> (
   -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   -> Name varchar(100)
   -> );
Query OK, 0 rows affected (0.76 sec)

INSERT 명령을 사용하여 테이블에 레코드를 삽입합니다.

mysql> insert into DemoTable1(Name) values('Chris');
Query OK, 1 row affected (0.21 sec)

mysql> insert into DemoTable1(Name) values('Robert');
Query OK, 1 row affected (0.13 sec)

SELECT 문으로 테이블의 모든 레코드를 확인합니다.

mysql> select *from DemoTable1;

출력 결과

+----+--------+
| Id | Name   |
+----+--------+
|  1 | Chris  |
|  2 | Robert |
+----+--------+
2 rows in set (0.00 sec)

2. 두 번째 테이블 생성

다음은 두 번째 테이블인 DemoTable2를 생성하는 쿼리입니다.

mysql> create table DemoTable2
   -> (
   -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   -> Name varchar(100)
   -> );
Query OK, 0 rows affected (0.48 sec)

두 번째 테이블에도 레코드를 삽입합니다.

mysql> insert into DemoTable2(Name) values('David');
Query OK, 1 row affected (0.53 sec)

mysql> insert into DemoTable2(Name) values('Bob');
Query OK, 1 row affected (0.15 sec)

SELECT 문으로 두 번째 테이블의 레코드를 확인합니다.

mysql> select *from DemoTable2;

출력 결과

+----+-------+
| Id | Name  |
+----+-------+
|  1 | David |
|  2 | Bob   |
+----+-------+
2 rows in set (0.00 sec)

3. UNION으로 두 테이블 결합 후 새 열 추가하기

이제 두 테이블을 UNION으로 결합하면서 'Age'라는 새로운 열을 추가해 보겠습니다. 핵심은 각 SELECT 절에서 상수 값(27, 20)을 지정하고 AS 키워드로 열 이름을 부여하는 것입니다. UNION은 위쪽 SELECT의 별칭을 기준으로 결과 열 이름을 결정합니다.

mysql> select Id,Name, 27 AS Age from DemoTable1
   -> union
   -> select Id,name,20 AS Age from DemoTable2;

출력 결과

+----+--------+-----+
| Id | Name   | Age |
+----+--------+-----+
|  1 | Chris  | 27  |
|  2 | Robert |  27 |
|  1 | David  | 20  |
|  2 | Bob    | 20  |
+----+--------+-----+
4 rows in set (0.00 sec)

위 결과를 보면 DemoTable1의 레코드에는 Age가 27로, DemoTable2의 레코드에는 Age가 20으로 표시됩니다. 이처럼 UNION과 상수 값, 별칭을 조합하면 실제 테이블 구조를 변경하지 않고도 조회 결과에 새로운 열을 손쉽게 추가할 수 있습니다.