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

MySQL SELECT từ hai bảng bằng một truy vấn (UNION)

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.