Hướng dẫn cách sử dụng UNION trong MySQL

Hướng dẫn cách sử dụng UNION trong MySQL chi tiết

Tìm hiểu Union là gì

Union kết hợp các kết quả từ nhiều truy vấn chọn thành 1 tập kết quả hợp nhất, yêu cầu duy nhất để làm việc này là số lượng cột giống nhau từ tất cả các truy vấn chọn “Select” được kết hợp.

Ví dụ chúng ta có 2 bảng như sau:

Hướng dẫn cách sử dụng UNION trong MySQL
Hướng dẫn cách sử dụng UNION trong MySQL

Giờ chúng ta tạo 1 truy vấn UNION để kết hợp cả 2 bảng bằng câu lệnh DISTINCT.

Giờ chúng ta tạo 1 truy vấn UNION để kết hợp cả 2 bảng bằng câu lệnh DISTINCT.
Giờ chúng ta tạo 1 truy vấn UNION để kết hợp cả 2 bảng bằng câu lệnh DISTINCT.

Ở đây có hàng trùng lặp được loại bỏ và chỉ còn các hàng duy nhất.

Ở đây có hàng trùng lặp được loại bỏ và chỉ còn các hàng duy nhất.
Ở đây có hàng trùng lặp được loại bỏ và chỉ còn các hàng duy nhất.

***:MySQL sử dụng mệnh đề DISTINCT làm mặc định khi thực hiện truy vấn UNION nếu không có chỉ định.

Bây giờ chúng ta cùng tạo 1 truy vấn Union để kết hợp cả 2 bảng bằng “All”

Bây giờ chúng ta cùng tạo 1 truy vấn Union để kết hợp cả 2 bảng bằng "All"
Bây giờ chúng ta cùng tạo 1 truy vấn Union để kết hợp cả 2 bảng bằng “All”

Kết quả các hàng trùng lặp đã bao gồm và chúng ta dùng “All”

Vì sao nên dùng Union

Nếu có 1 sai sót trong cơ sở dữ liệu của bạn và bạn đang dùng 2 bảng khác nhau cho cùng 1 mục đích, bạn muốn hợp nhất 2 bảng này thành 1 trong khi bỏ qua bất kỳ bản ghi trùng lặp nào từ việc tạo ra bảng mới. Bạn có thể dùng Union trong các trường hợp như vậy.

Tóm tắt:

  • Mệnh đề Union được dùng để kết hợp nhiều kết quả truy vấn “Chọn” vô 1 truy vấn duy nhất từ tất cả các truy vấn được chọn.
  • Số lượng cột và kiểu dữ liệu trong các câu lệnh Chọn phải giống nhau để lệnh Union mới hoạt động được.
  • Mệnh đề Distinct được dùng để loại bỏ các giá trị trùng lặp khỏi tập kết quả truy vấn, MySQL dùng mệnh đề Distinct làm mặc định khi thực hiện các truy vấn Union nếu không có gì được chỉ định.
  • Mệnh đề All được dùng để trả về tất cả các hàng trùng lặp trong truy vấn Union.

Ví dụ:

Trong myFlixDB chúng ta cho phép kết hợp

Member_numberfull_name từ bảng Member

Với movie_id và tiêu đề từ bảng movie chúng ta có thể dùng truy vấn sau:

 

Chạy đoạn mã trên chúng ta có được:

Chạy đoạn mã trên chúng ta có được:
Chạy đoạn mã trên chúng ta có được

ĐỌC THÊM: Hướng dẫn cách kết nối SQL với Excel để lấy dữ liệu

 

Rate this post

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *