Hướng dẫn MySQL

MySQL HOME Giới thiệu MySQL MySQL RDBMS

MySQL SQL

MySQL SQL MySQL SELECT MySQL Ở ĐÂU MySQL VÀ, HOẶC, KHÔNG ĐẶT HÀNG MySQL BỞI CHÈN MySQL VÀO Giá trị MySQL NULL CẬP NHẬT MySQL MySQL DELETE MySQL LIMIT MySQL MIN và MAX MySQL COUNT, AVG, SUM MySQL LIKE MySQL Wildcards MySQL IN MySQL GIỮA Bí danh MySQL MySQL tham gia MySQL INNER THAM GIA MySQL THAM GIA TRÁI THAM GIA QUYỀN MySQL THAM GIA CROSS MySQL MySQL Tự tham gia MySQL UNION MySQL GROUP BY MySQL CÓ MySQL tồn tại MySQL BẤT CỨ, TẤT CẢ CHÈN CHÈN MySQL MySQL CASE MySQL Null Functions Nhận xét MySQL Toán tử MySQL

Cơ sở dữ liệu MySQL

MySQL Tạo cơ sở dữ liệu MySQL Drop DB MySQL Tạo bảng Bảng thả MySQL Bảng MySQL Alter Các ràng buộc của MySQL MySQL không rỗng MySQL duy nhất Khóa chính MySQL Khóa ngoại MySQL Kiểm tra MySQL MySQL mặc định MySQL Tạo chỉ mục Tăng tự động MySQL MySQL Dates Chế độ xem MySQL

Tham chiếu MySQL

Các kiểu dữ liệu MySQL Các chức năng của MySQL

Ví dụ về MySQL

Ví dụ về MySQL MySQL Quiz Bài tập MySQL

Toán tử MySQL UNION


Toán tử MySQL 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 SELECT câu lệnh.

  • Mọi SELECTcâu lệnh bên trong UNIONphả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 SELECTcâu lệnh cũng phải theo cùng một thứ tự

Cú pháp UNION

SELECT column_name(s) FROM table1
UNION
SELECT column_name(s) FROM table2;

UNION ALL Cú pháp

Toán tử UNIONchỉ chọn các giá trị riêng biệt theo mặc định. Để cho phép các giá trị trùng lặp, hãy sử dụng UNION ALL:

SELECT column_name(s) FROM table1
UNION ALL
SELECT column_name(s) FROM table2;

Lưu ý: Tên cột trong tập kết quả thường bằng tên cột trong SELECTcâu lệnh đầu tiên.


Cơ sở dữ liệu Demo

Trong hướng dẫn này, chúng tôi sẽ sử dụng cơ sở dữ liệu mẫu Northwind nổi tiếng.

Dưới đây là lựa chọn từ bảng "Khách hàng":

CustomerID CustomerName ContactName Address City PostalCode Country
1

Alfreds Futterkiste Maria Anders Obere Str. 57 Berlin 12209 Germany
2 Ana Trujillo Emparedados y helados Ana Trujillo Avda. de la Constitución 2222 México D.F. 05021 Mexico
3 Antonio Moreno Taquería Antonio Moreno Mataderos 2312 México D.F. 05023 Mexico

Và lựa chọn từ bảng "Nhà cung cấp":

SupplierID SupplierName ContactName Address City PostalCode Country
1 Exotic Liquid Charlotte Cooper 49 Gilbert St. London EC1 4SD UK
2 New Orleans Cajun Delights Shelley Burke P.O. Box 78934 New Orleans 70117 USA
3 Grandma Kelly's Homestead Regina Murphy 707 Oxford Rd. Ann Arbor 48104 USA


Ví dụ về SQL UNION

Câu lệnh SQL sau trả về các thành phố (chỉ các giá trị riêng biệt) từ cả bảng "Khách hàng" và "Nhà cung cấp":

Thí dụ

SELECT City FROM Customers
UNION
SELECT City FROM Suppliers
ORDER BY City;

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ì UNIONchỉ chọn các giá trị riêng biệt. Cũng sử dụng UNION ALLđể chọn các giá trị trùng lặp!


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":

Thí dụ

SELECT City FROM Customers
UNION ALL
SELECT City FROM Suppliers
ORDER BY City;

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":

Thí dụ

SELECT City, Country FROM Customers
WHERE Country='Germany'
UNION
SELECT City, Country FROM Suppliers
WHERE Country='Germany'
ORDER BY City;

UNION SQL TẤT CẢ VỚI WHERE

Câu lệnh SQL sau trả về các thành phố của Đức (cũng có giá trị trùng lặp) từ cả bảng "Khách hàng" và "Nhà cung cấp":

Thí dụ

SELECT City, Country FROM Customers
WHERE Country='Germany'
UNION ALL
SELECT City, Country FROM Suppliers
WHERE Country='Germany'
ORDER BY City;

Một ví dụ khác về UNION

Câu lệnh SQL sau liệt kê tất cả khách hàng và nhà cung cấp:

Thí dụ

SELECT 'Customer' AS Type, ContactName, City, Country
FROM Customers
UNION
SELECT 'Supplier', ContactName, City, Country
FROM Suppliers;

Lưu ý "Loại AS" ở trên - nó là một bí danh. Bí danh SQL được sử dụng để đặt tên tạm thời cho bảng hoặc cột. Bí danh chỉ tồn tại trong thời gian truy vấn. Vì vậy, ở đây chúng tôi đã tạo một cột tạm thời có tên "Loại", liệt kê danh sách người liên hệ là "Khách hàng" hay "Nhà cung cấp".