Hướng dẫn union trong mysql - union trong mysql

Union là gì?

Truy vấn Union kết hợp các kết quả từ nhiều truy vấn chọn thành một 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 phải giống nhau từ tất cả các truy vấn Chọn “Select” được kết hợp.

Giả sử chúng ta có hai bảng như sau

Bây giờ chúng ta hãy tạo một truy vấn UNION để kết hợp cả hai bảng bằng câu lệnh DISTINCT

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

Lưu ý: MySQL sử 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.

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

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

Tại sao nên sử dụng Union

Giả sử có một sai sót trong cơ sở dữ liệu của bạn và bạn đang sử dụng hai bảng khác nhau cho cùng một mục đích. Bạn muốn hợp nhất hai bảng này thành một 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ể sử dụng Union trong những trường hợp như vậy.

Tóm lược

  • Mệnh đề Union được sử dụng để kết hợp nhiều kết quả truy vấn “Chọn” vào một 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 hoạt động. 
  • Mệnh đề Distinct được sử dụng để loại bỏ các giá trị trùng lặp khỏi tập kết quả truy vấn Union. MySQL sử 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 sử dụng để trả về tất cả các hàng trùng lặp trong truy vấn Union.

Ví dụ sử dụng trong MySQL

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

Member_number và full_names từ bảng Member

Với

movie_id và tiêu đề từ bảng movie

Chúng ta có thể sử dụng truy vấn sau đây

Chạy đoạn mã trên chúng ta được kết quả sau

Ngoài ra bạn có thể truy cập ngay //gitiho.com/ để tìm hiểu thêm nhiều các khóa học hay về tin học văn phòng: Excel, Power Point, lập trình VBA, lập trình C#, SQL, thiết kế đồ họa… Có rất nhiều ưu đãi hấp dẫn đang chờ bạn.

Các bạn có thể tham khảo thêm các bài viết khác về cách sử dụng MySQL:

Hướng dẫn sử dụng câu lệnh SELECT trong MySQL qua các ví dụ

Hướng dẫn câu lệnh DELETE trong MySQL và ví dụ minh họa

Hướng dẫn cách dùng mệnh đề WHERE trong MySQL

Nguyễn Thụy Tố Quyên

Hậu Giang UNIONUNION ALL được dùng để gộp tập kết quả của hai hay nhiều câu lệnh truy vấn dữ liệu (SELECT) lại với nhau.

Hồ Nguyễn Minh Thư

  • Đồng Tháp
  • Trương Khắc Tâm

Sinh viên

An Giang

  • Trà Vinh
  • Thứ tự cột trong các câu lệnh SELECT phải được sắp xếp theo đúng thứ tự cột của cái bảng kết hợp.
  • Các cột tương ứng giữa các câu lệnh SELECT phải có kiểu dữ liệu giống nhau.

- Dưới đây là cú pháp sử dụng toán tử UNION:

SELECT column1, column2, column3, . . . . FROM table1 WHERE condition UNION SELECT column1, column2, column3, . . . . FROM table2 WHERE condition;

- Dưới đây là cú pháp sử dụng toán tử UNION ALL:

SELECT column1, column2, column3, . . . . FROM table1 WHERE condition UNION ALL SELECT column1, column2, column3, . . . . FROM table2 WHERE condition;

3) Tham khảo một số ví dụ

- Trong bài học này, tôi sẽ sử dụng hai cái bảng Customers & SinhVien như bên dưới để làm ví dụ minh họa.

CustomerID CustomerName Gender Age City
1 Nguyễn Thành Nhân Nam 22 Cần Thơ
2 Nguyễn Thụy Tố Quyên Nữ 23 Hậu Giang
3 Hồ Nguyễn Minh Thư Nữ 25 Hậu Giang
4 Hồ Nguyễn Minh Thư Nam 20 Cần Thơ
Nguyễn Thụy Tố Quyên Nữ Hậu Giang Hồ Nguyễn Minh Thư Đồng Tháp
1 Hồ Nguyễn Minh Thư Nữ 19 Hậu Giang
2 Nguyễn Thành Nhân Nam 20 Cần Thơ
3 Nguyễn Thụy Tố Quyên Nam 18 Cần Thơ

Nguyễn Thụy Tố Quyên

Nữ

SELECT CustomerName, Age, City FROM Customers WHERE City = "Cần Thơ" UNION ALL SELECT HoTen, Tuoi, ThanhPho FROM SinhVien WHERE ThanhPho = "Cần Thơ";

Hậu Giang

CustomerName Age City
Nguyễn Thành Nhân 22 Cần Thơ
Hồ Nguyễn Minh Thư 20 Cần Thơ
Nguyễn Thụy Tố Quyên 18 Cần Thơ

Nguyễn Thụy Tố Quyên

Nữ

Hậu Giang

SELECT CustomerName AS C1, Age AS C2, City AS C3 FROM Customers WHERE City = "Cần Thơ" UNION ALL SELECT HoTen, Tuoi, ThanhPho FROM SinhVien WHERE ThanhPho = "Cần Thơ";

Hậu Giang

Hồ Nguyễn Minh Thư Đồng Tháp Trương Khắc Tâm
Nguyễn Thành Nhân 22 Cần Thơ
Hồ Nguyễn Minh Thư 20 Cần Thơ
Nguyễn Thụy Tố Quyên 18 Cần Thơ

Nguyễn Thụy Tố Quyên

Nữ

SELECT CustomerName AS HỌ_TÊN, Age AS TUỔI, City AS THÀNH_PHỐ FROM Customers UNION ALL SELECT HoTen, Tuoi, ThanhPho FROM SinhVien ORDER BY TUỔI DESC;

Hậu Giang

Hồ Nguyễn Minh Thư Đồng Tháp Trương Khắc Tâm
Hồ Nguyễn Minh Thư 25 Hậu Giang
Nguyễn Thụy Tố Quyên 23 Hậu Giang
Nguyễn Thành Nhân 22 Cần Thơ
Hồ Nguyễn Minh Thư 20 Cần Thơ
Nguyễn Thành Nhân 20 Cần Thơ
Hồ Nguyễn Minh Thư 19 Hậu Giang
Nguyễn Thụy Tố Quyên 18 Cần Thơ

Nguyễn Thụy Tố Quyên

Nữ

SELECT CustomerName AS HỌ_TÊN FROM Customers UNION SELECT HoTen FROM SinhVien;

Hậu Giang

Hồ Nguyễn Minh Thư
Nguyễn Thành Nhân
Nguyễn Thụy Tố Quyên
Hồ Nguyễn Minh Thư
Hồ Nguyễn Minh Thư
Nguyễn Thụy Tố Quyên

Nguyễn Thụy Tố Quyên

Nữ

SELECT "Khách hàng" AS PHÂN_LOẠI, CustomerName AS HỌ_TÊN, Age AS TUỔI, City AS THÀNH_PHỐ FROM Customers UNION SELECT "Sinh viên", HoTen, Tuoi, ThanhPho FROM SinhVien;

Hậu Giang

Hồ Nguyễn Minh Thư Hồ Nguyễn Minh Thư Đồng Tháp Trương Khắc Tâm
MSSV Nguyễn Thành Nhân 22 Cần Thơ
MSSV Nguyễn Thụy Tố Quyên 23 Hậu Giang
MSSV Hồ Nguyễn Minh Thư 25 Hậu Giang
MSSV Hồ Nguyễn Minh Thư 20 Cần Thơ
Nguyễn Thụy Tố Quyên Hồ Nguyễn Minh Thư 19 Hậu Giang
Nguyễn Thụy Tố Quyên Nguyễn Thành Nhân 20 Cần Thơ
Nguyễn Thụy Tố Quyên Nguyễn Thụy Tố Quyên 18 Cần Thơ

Chủ đề