Kết Hợp Dữ Liệu Với UNION Trong SQL

Kết hợp dữ liệu UNION

Đôi khi, bạn có thể cần kết hợp dữ liệu mà chúng có cấu trúc giống nhau từ nhiều bảng thành một khi truy vấn. Các bảng này có khi trong cùng một CSDL, có khi ở các CSDL khác nhau, thậm chí là ở các server khác nhau.

Thực hiện nhiệm vụ này có toán tử UNIONUNION ALL

  • UNION kết hợp lại nhưng loại bỏ trùng nhau
  • UNION ALL kết hợp lại nhưng không loại bỏ trùng nhau

UNION dùng để kết hợp các kết quả của các câu SELECT lại với nhau. Các câu SELECT cần có số cột giống nhau, cột tương ứng theo thứ tự phải cùng kiểu dữ liệu

Ví dụ lấy tên từ bảng Customers và Suppliers có loại bỏ tên trùng nhau (giữ lại duy nhất 1)

SELECT Thanhpho, 'Customers' as FromTable FROM Khachhang UNION SELECT Thanhpho, 'Suppliers' as FromTable FROM Cungcap ORDER BY Thanhpho Chạy thử

Kết quả

ThanhphoFromTable
An GiangCustomers
Bà Rịa - Vũng TàuCustomers
Bình DươngCustomers
Bình PhướcCustomers
......

Có một file CSDL mẫu dạng SQLite, bạn có thể tải về thực hành: CSDL SQLite mẫu. Hoặc Chạy SQL Online

Trong trường hợp kết hợp mà không muốn loại bỏ trùng nhau thì dùng UNION ALL

SELECT Thanhpho, 'Customers' as FromTable FROM Khachhang UNION ALL SELECT Thanhpho, 'Suppliers' as FromTable FROM Cungcap ORDER BY Thanhpho Chạy thử

Trong câu lệnh SELECT sử dụng UNION có thể sử dụng WHERE

Ví dụ lấy tất cả tên các thành phố từ Germany

SELECT Thanhpho, 'Customers' as FromTable FROM Khachhang WHERE Quocgia='Việt Nam' UNION SELECT Thanhpho, 'Suppliers' as FromTable FROM Cungcap WHERE Quocgia='Việt Nam' ORDER BY Thanhpho Chạy thử ĐĂNG KÝ KÊNH, XEM CÁC VIDEO TRÊN XUANTHULAB Đăng ký nhận bài viết mới

Từ khóa » Cú Pháp Union Trong Sql