Share Kết hợp dữ liệu của nhiều bảng với UNION trong SQL

filiallion

Administrator
Staff member
Administrator
Messages
341
Points
10
Language
Tiếng Việt
Trong SQL, các bạn có thể lấy dữ liệu từ nhiều bảng chỉ với một câu lệnh truy vấn, để làm được như vậy các bạn có thể sử dụng UNION kết hợp nhiều lệnh SELECT lại với nhau. Yêu cầu để sử dụng UNION là các lệnh SELECT phải tương đồng về số cột dữ liệu, kiểu dữ liệu, cùng thứ tự,... UNION được hầu hết các hệ quản trị cơ sở dữ liệu hỗ trợ như SQL Server, Oracle, MySQL,...

Sử dụng UNION để truy vấn dữ liệu là cần thiết trong nhiều trường hợp phải kết hợp nhiều dữ liệu từ nhiều bảng khác nhau, thậm chí là từ các cơ sở dữ liệu khác nhau. Điều này giúp ích rất nhiều cho các bạn lập trình viên trong việc lấy dữ liệu phục vụ yêu cầu lập trình. UNION còn có UNION ALL với nhiệm vụ tương tự chỉ khác là UNION ALL lấy toàn bộ các dữ liệu được chọn bao gồm cả trùng lập trong khi UNION thì lấy các dữ liệu không trùng lập.

Các bạn có thể tham khảo câu truy vấn SQL sau đây để biết cách sử dụng UNION:
SQL:
SELECT fullname, address FROM tbl_customer
UNION
SELECT fullname, address FROM tbl_contact
Với câu truy vấn ở trên, các bạn thấy các cột được chọn hoàn toàn giống nhau, đây là điều bắt buộc mà các bạn cần phải lưu ý khi sử dụng UNION.

Với câu truy vấn trên thì các bạn sẽ nhận được các dòng dữ liệu không trùng lập nhau từ hai bảng dữ liệu. Trong trường hợp các bạn muốn lấy tất cả các dòng dữ liệu từ hai bảng kể cả trùng lập thì các bạn có thể điều chỉnh câu truy vấn SQL ở trên thành như sau:
SQL:
SELECT fullname, address FROM tbl_customer
UNION ALL
SELECT fullname, address FROM tbl_contact
Hai câu truy vấn này chỉ khác nhau ở UNION và UNION ALL.

Các bạn có thể tìm hiểu thêm về UNION trong SQL tại địa chỉ https://www.w3schools.com/sql/sql_union.asp.
 
Top