Kỹ thuật
Sử dụng UNION để kết hợp kết quả từ hai câu SELECT trên hai bảng có cấu trúc cột giống nhau. UNION loại bỏ bản ghi trùng lặp; dùng UNION ALL để giữ trùng lặp.
1. Tạo bảng 1
mysql> create table DemoTable1 (
Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
FirstName varchar(20)
);
Query OK, 0 rows affected (0.90 sec)
2. Chèn dữ liệu bảng 1
mysql> insert into DemoTable1(FirstName) values('Chris');
mysql> insert into DemoTable1(FirstName) values('Adam');
mysql> insert into DemoTable1(FirstName) values('Sam');
3. Tạo bảng 2
mysql> create table DemoTable2(
Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
FirstName varchar(20)
);
Query OK, 0 rows affected (1.75 sec)
4. Chèn dữ liệu bảng 2
mysql> insert into DemoTable2(FirstName) values('John');
mysql> insert into DemoTable2(FirstName) values('Tom');
mysql> insert into DemoTable2(FirstName) values('Bob');
5. Truy vấn UNION và sắp xếp
mysql> (select * from DemoTable1)
union
(select * from DemoTable2)
order by FirstName;
Kết quả:
+----+-----------+ | Id | FirstName | +----+-----------+ | 2 | Adam | | 3 | Bob | | 1 | Chris | | 1 | John | | 3 | Sam | | 2 | Tom | +----+-----------+ 6 rows in set (0.00 sec)
Lưu ý: Số cột và kiểu dữ liệu tương ứng phải khớp nhau.