Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Kết hợp hai bảng (UNION) và thêm cột mới với giá trị khác nhau trong MySQL

Sử dụng UNION để gộp kết quả của hai SELECT, thêm cột hằng số khác nhau cho từng bảng để phân biệt nguồn.

Tạo bảng 1 và dữ liệu

mysql> CREATE TABLE DemoTable1 (Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, Name VARCHAR(100));
Query OK, 0 rows affected (0.76 sec)
mysql> INSERT INTO DemoTable1(Name) VALUES('Chris'), ('Robert');
Query OK, 2 rows affected (0.21 sec)

Tạo bảng 2 và dữ liệu

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'), ('Bob');
Query OK, 2 rows affected (0.53 sec)

UNION với cột Age khác nhau

mysql> SELECT Id, Name, 27 AS Age FROM DemoTable1
    -> UNION
    -> SELECT Id, Name, 20 AS Age FROM DemoTable2;

Kết quả:

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

Lưu ý:

  • UNION loại bỏ trùng lặp (giống DISTINCT), dùng UNION ALL để giữ tất cả
  • Số cột và kiểu dữ liệu tương ứng phải khớp nhau
  • Cột hằng số 27 AS Age, 20 AS Age tạo cột phân biệt nguồn