Hạn chế lớn nhất của câu lệnh SELECT có lẽ rằng là việc chỉ hoàn toàn có thể lấy một hoặc nhiều cột từ một bảng duy nhất. Tuy nhiên, chỉ với một từ khóa UNION, bạn trọn vẹn hoàn toàn có thể biến hóa điều này .
1. Ý nghĩa của UNION
Toán tử UNION được sử dụng để phối hợp tập hợp hiệu quả của hai hoặc nhiều câu lệnh SELECT. Mỗi câu lệnh SELECT với UNION phải có cùng số lượng cột, những cột phải có cùng kiểu tài liệu, những cột trong mỗi câu lệnh SELECT phải có cùng trật tự .
- Cú pháp của UNION:
SELECT tên cột FROM bảng1
UNION
SELECT tên cột FROM bảng2
- Cú pháp của UNION ALL:
SELECT tên cột FROM bảng1
UNION ALL
SELECT tên cột FROM bảng2
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.
2. Ví dụ UNION
Để triển khai ví dụ này, bạn cần nhập cơ sở tài liệu mẫu Northwind vào SQL Server Management Studio. Hãy xem bài viết hướng dẫn ngay dưới đây :
Tham khảo: Hướng dẫn tải và cài đặt dữ liệu mẫu Northwind trong SQL Server Management Studio
Câu lệnh SQL dưới đây sẽ lấy ra những thành phố ( chỉ giá trị khác nhau ) từ bảng Customers và Suppliers :
SELECT City FROM Customers
UNION
SELECT City FROM Suppliers
ORDER BY City ;
Lưu ý: Nếu một vài 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, bởi vì toán tử UNION chỉ lấy các giá trị khác nhau. Để lấy tất cả giá trị, bao gồm cả những giá trị trùng lặp hãy sử dụng UNION ALL.
3. Ví dụ UNION ALL
Câu lệnh SQL dưới đây sẽ lấy ra những thành phố ( gồm có cả giá trị trùng lặp ) từ bảng Customers và Suppliers :
SELECT City FROM Customers
UNION ALL
SELECT City FROM Suppliers
ORDER BY City ;
Kết quả lúc này đã khởi đầu Open những giá trị giống nhau .
4. UNION với mệnh đề WHERE
Câu lệnh SQL dưới đây sẽ lấy ra những thành phố của nước Đức ( Country = ‘ Germany ‘ ) và chỉ giá trị khác nhau từ bảng Customers và Suppliers :
SELECT City, Country FROM Customers
WHERE Country = ‘ Germany ‘
UNION
SELECT City, Country FROM Suppliers
WHERE Country=’Germany’
ORDER BY City ;
5. UNION ALL với mệnh đề WHERE
Câu lệnh SQL dưới đây sẽ lấy ra những thành phố của nước Đức ( Country = ‘ Germany ‘ ) và gồm có cả giá trị trùng lặp từ bảng Customers và Suppliers :
SELECT City, Country FROM Customers
WHERE Country = ‘ Germany ‘
UNION ALL
SELECT City, Country FROM Suppliers
WHERE Country = ‘ Germany ‘
ORDER BY City ;
Kết quả là ở cột City đã có giá trị giống nhau Open .
6. Ví dụ UNION khác
Câu lệnh dưới đây sẽ liệt kê tổng thể người mua và nhà cung ứng :
SELECT ‘ Customer ‘ AS Type, ContactName, City, Country
FROM Customers
UNION
SELECT ‘ Supplier ‘, ContactName, City, Country
FROM Suppliers ;
“ AS Type ” truy vấn trên là một bí danh, nó cung ứng một cái tên trong thời điểm tạm thời cho cột trong truy vấn và sống sót trong suốt truy vấn. Vì thế, tất cả chúng ta đã tạo ra một cột có tên là “ Type ” để liệt kê thông tin liên hệ là “ Customer ” hay “ Supplier ” .
Tham khảo: Bí danh trong SQL
Như vậy là tất cả chúng ta đã đi qua những ví dụ về toán tử UNION, giờ đây, những bạn hoàn toàn có thể lấy nhiều cột tài liệu từ những bảng khác nhau trong cùng một truy vấn. Trong những nội dung tiếp theo, tất cả chúng ta sẽ liên tục với những hàm và toán tử còn lại trong SQL, đừng quên đón đọc tại BAC’s Blog .
Nguồn tham khảo:
https://www.w3schools.com/
Nhu cầu giảng dạy doanh nghiệp
BAC là đơn vị chức năng đào tạo và giảng dạy BA tiên phong tại Nước Ta. Đối tác chính thức của IIBA quốc tế. Ngoài những khóa học public, BAC còn có những khóa học in house dành riêng cho từng doanh nghiệp. Chương trình được phong cách thiết kế riêng theo nhu yếu của doanh nghiệp, giúp doanh nghiệp xử lý những khó khăn vất vả và tư vấn tăng trưởng .
Tham khảo chương trình huấn luyện và đào tạo :
BAC – Biên soạn và tổng hợp nội dung