Điều kiện UNION và UNION ALL trong SQL

Điều kiện UNION trong SQL

Điều kiện UNION được sử dụng để hợp nhất kết quả của hai hoặc nhiều câu lệnh SELECT.

Vui lòng chú ý, câu lệnh SELECT bên trong UNION phải có số lượng cột giống nhau. Các cột cũng phải có loại dữ liệu tương tự. Đồng thời, thứ tự các cột trong mỗi câu lệnh SELECT phải giống nhau.

Cú pháp SQL UNION

SELECT column_name(s) FROM table_name1
UNION
SELECT column_name(s) FROM table_name2

Chú ý:Mặc định, toán tử UNION chọn các giá trị khác nhau. Nếu cho phép giá trị trùng lặp, hãy sử dụng UNION ALL.

Cú pháp SQL UNION ALL

SELECT column_name(s) FROM table_name1
UNION ALL
SELECT column_name(s) FROM table_name2

Ngoài ra, tên cột trong kết quả của UNION luôn bằng tên cột của câu lệnh SELECT đầu tiên trong UNION.

Dưới đây là bảng cơ sở dữ liệu gốc được sử dụng trong ví dụ:

Employees_China:

E_ID E_Name
01 Zhang, Hua
02 Wang, Wei
03 Carter, Thomas
04 Yang, Ming

Employees_USA:

E_ID E_Name
01 Adams, John
02 Bush, George
03 Carter, Thomas
04 Gates, Bill

Sử dụng lệnh UNION

Ví dụ

Liệt kê tất cả các tên nhân viên khác nhau ở Trung Quốc và Mỹ:

SELECT E_Name FROM Employees_China
UNION
SELECT E_Name FROM Employees_USA

Kết quả

E_Name
Zhang, Hua
Wang, Wei
Carter, Thomas
Yang, Ming
Adams, John
Bush, George
Gates, Bill

Chú ý:Lệnh này không thể liệt kê tất cả các nhân viên ở Trung Quốc và Mỹ. Trong ví dụ trên, chúng ta có hai nhân viên có cùng tên, chỉ có một người trong số họ được liệt kê. Lệnh UNION chỉ chọn các giá trị khác nhau.

UNION ALL

Lệnh UNION ALL và lệnh UNION gần như tương đương, nhưng lệnh UNION ALL sẽ liệt kê tất cả các giá trị.

SQL Câu lệnh 1
UNION ALL
SQL Câu lệnh 2

Sử dụng lệnh UNION ALL

Ví dụ:

Liệt kê tất cả các nhân viên ở Trung Quốc và Mỹ:

SELECT E_Name FROM Employees_China
UNION ALL
SELECT E_Name FROM Employees_USA

Kết quả

E_Name
Zhang, Hua
Wang, Wei
Carter, Thomas
Yang, Ming
Adams, John
Bush, George
Carter, Thomas
Gates, Bill