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 ý:
UNIONloại bỏ trùng lặp (giốngDISTINCT), dùngUNION 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 Agetạo cột phân biệt nguồn