
W3School
Toán tử SQL UNION
Toán tử UNION
được sử dụng để kết hợp tập hợp kết quả của hai hoặc nhiều câu lệnh SELECT.
- Mọi câu lệnh
SELECT
bên trongUNION
phải có cùng số cột - Các cột cũng phải có kiểu dữ liệu tương tự
- Các cột trong mọi câu lệnh
SELECT
cũng phải theo cùng một thứ tự
Cú pháp UNION

Cú pháp UNION ALL
Toán tử UNION
chỉ chọn các giá trị riêng biệt, tức là nếu có hai dòng giống hệt sau ở hai SELECT thì kết quả trả về sẽ chỉ hiện thị ra một dòng dữ liệu. Để cho phép các giá trị trùng lặp, hãy sử dụng UNION ALL
:

Lưu ý: Tên cột trong tập kết quả thường bằng tên cột trong câu lệnh SELECT đầu tiên. Tức là ví dụ bạn SELECT “CUSTOMER” AS Type, … UINON SELECT “Supplier” …, tên cột trả về sẽ là Type.
Bạn có thể download cơ sở dữ liệu Northwind để bắt đầu thực hành tại đây:
- Dành cho Sql Server, MS Access Download
- Dành cho Mysql: Tạo bảng trước với Download Table sau đó hãy điền data với Download Data
- Dành cho Oracle Download
Lưu ý: Tên bảng trong CSDL cho SQL Server thường được viết hoa chữ đầu. Với Mysql thì tên bảng được viết thường. Và với Oracle thì tên bảng toàn bộ được viết hoa. Bạn hãy viết đúng tên bảng trong query của mình nhé.
Trong nội dung bài viết, đôi khi tên bảng được viết dưới dạng tiếng Việt, ví dụ:
- Customers: Khách hàng
- Orders: Đơn hàng
- Employees: Nhân viên
- Shipers: Giao hàng
- Invoices: Hoá đơn
Ví dụ về SQL UNION
Câu lệnh SQL sau trả về các thành phố (chỉ các giá trị khác biệt) từ cả bảng “Khách hàng” và “Nhà cung cấp”:


Lưu ý: Nếu một số khách hàng hoặc nhà cung cấp có cùng thành phố, mỗi thành phố sẽ chỉ được liệt kê một lần vì UNION
chỉ chọn các giá trị riêng biệt. Hãy sử dụng UNION ALL
để chọn các giá trị trùng lặp!
Lưu ý: ORDER BY ở ví dụ trên sẽ sắp xếp kết quả của cả hai select. Nếu bạn muốn từng SELECT có sự sắp xếp riêng biệt hãy sử dụng đóng mở ngoặc () cho từng select và viết ORDER BY cho từng select.
Ví dụ về SQL UNION ALL
Câu lệnh SQL sau trả về các thành phố (cũng có giá trị trùng lặp) từ cả bảng “Khách hàng” và “Nhà cung cấp”:


Như bạn thấy một số thành phố như Berlin đã xuất hiện nhiều hơn 1 lần.
UNION SQL với WHERE
Câu lệnh SQL sau trả về các thành phố của Đức (chỉ các giá trị khác biệt) từ cả bảng “Khách hàng” và “Nhà cung cấp”:


WHERE được áp dụng cho từng lệnh SELECT, hoàn toàn khác với ORDER BY ở trên.
W3School
- SQL Tutorial
- Cú pháp SQL
- Câu lệnh SQL SELECT
- Câu lệnh SQL SELECT DISTINCT
- WHERE SQL
- Toán tử AND, OR và NOT
- Sắp xếp dữ liệu với ORDER BY
- NULL Trong SQL
- INSERT INTO
- SQL UPDATE
- SQL Delete
- SQL Top
- Hàm MIN MAX trong SQL
- COUNT, AVG và SUM
- SQL Toán tử LIKE
- SQL Wildcards
- Toán tử SQL IN
- SQL BETWEEN
- SQL ALIAS
- SQL JOIN
- SQL INNER JOIN
- LEFT JOIN Trong SQL
- RIGHT JOIN Trong SQL
- SQL FULL OUTER JOIN TRONG SQL
- SQL Self Join
- Toán tử UINON SQL