MySQL UNION
Tóm tắt: trong hướng dẫn này, bạn sẽ tìm hiểu cách sử dụng toán tử MySQL UNION để kết hợp hai hoặc nhiều tập kết quả từ nhiều câu lệnh CHỌN vào một tập kết quả.
MySQL UNION
operator
UNION
operatorToán tử MySQL UNION cho phép bạn kết hợp hai hoặc nhiều bộ kết quả truy vấn thành một bộ kết quả. Dưới đây minh họa cú pháp của toán tử UNION:
Theo mặc định, toán tử UNION loại bỏ các hàng trùng lặp ngay cả khi bạn không chỉ định rõ ràng toán tử DISTINCT.
Let’s see the following sample tables: t1
and t2
:
The following statement combines result sets returned from t1
and t2
tables:
The final result set contains the distinct values from separate result sets returned by the queries:
Vì các hàng có giá trị 2 và 3 là trùng lặp, nên toán tử UNION đã loại bỏ nó và chỉ giữ lại các hàng riêng biệt.
Biểu đồ Venn sau đây minh họa sự kết hợp của hai tập kết quả đến từ các bảng t1 và t2:
Nếu bạn sử dụng UNION ALL một cách rõ ràng, các hàng trùng lặp, nếu có, vẫn nằm trong kết quả. Bởi vì UNION ALL không cần xử lý các bản sao, nên nó hoạt động nhanh hơn UNION DISTINCT.
Như bạn có thể thấy, các bản sao xuất hiện trong tập kết quả kết hợp do hoạt động UNION ALL.
UNION
vs. JOIN
UNION
vs. JOIN
JOIN kết hợp các tập kết quả theo chiều ngang, UNION sẽ thêm kết quả được đặt theo chiều dọc. Hình ảnh sau đây minh họa sự khác biệt giữa UNION và THAM GIA:
MySQL UNION
and column alias examples
UNION
and column alias examplesWe will use the customers
and employees
tables in the sample database for the demonstration:
Giả sử bạn muốn kết hợp tên và họ của cả nhân viên và khách hàng vào một tập kết quả, bạn có thể sử dụng toán tử UNION như sau:
Here is the output:
Như bạn có thể thấy, toán tử MySQL UNION sử dụng tên cột của câu lệnh CHỌN đầu tiên để ghi nhãn các cột trong đầu ra.
Nếu bạn muốn sử dụng bí danh cột của riêng mình, bạn cần chỉ định rõ ràng chúng trong câu lệnh CHỌN đầu tiên như trong ví dụ sau:
Trong ví dụ này, thay vì sử dụng nhãn cột mặc định từ truy vấn đầu tiên, chúng tôi đã sử dụng tên đầy đủ bí danh cột để gắn nhãn đầu ra.
MySQL UNION
and ORDER BY
UNION
and ORDER BY
Nếu bạn muốn sắp xếp kết quả của một liên kết, bạn sử dụng mệnh đề ORDER BY trong câu lệnh CHỌN cuối cùng như trong ví dụ sau:
Lưu ý rằng nếu bạn đặt mệnh đề ORDER BY trong mỗi câu lệnh SELECT, nó sẽ không ảnh hưởng đến thứ tự của các hàng trong tập kết quả cuối cùng.
MySQL cũng cung cấp cho bạn tùy chọn thay thế để sắp xếp tập kết quả dựa trên vị trí cột bằng mệnh đề ORDER BY như sau:
Trong hướng dẫn này, bạn đã học cách sử dụng câu lệnh MySQL UNION để kết hợp dữ liệu từ nhiều truy vấn vào một tập kết quả.
Last updated