×

Làm thế nào để sử dụng UNION và UNION ALL?

Trong MySQL, UNIONUNION ALL được sử dụng để kết hợp kết quả của hai hoặc nhiều câu lệnh SELECT thành một tập hợp kết quả duy nhất. Cả hai đều có thể kết hợp dữ liệu từ các bảng khác nhau miễn là số lượng cột và kiểu dữ liệu trong các cột tương ứng giữa các truy vấn là giống nhau.

UNION

UNION loại bỏ các bản ghi trùng lặp từ kết quả. Nó chỉ bao gồm bản ghi duy nhất từ tất cả các bản ghi giống nhau giữa các truy vấn.

Cú pháp:

SELECT column_names FROM table1
UNION
SELECT column_names FROM table2;

Ví dụ:

Giả sử bạn có hai bảng san_pham_asan_pham_b, và bạn muốn lấy danh sách tất cả các sản phẩm duy nhất từ cả hai bảng:

SELECT ten_san_pham FROM san_pham_a
UNION
SELECT ten_san_pham FROM san_pham_b;

UNION ALL

UNION ALL bao gồm tất cả các bản ghi từ các câu lệnh SELECT, kể cả các bản ghi trùng lặp.

Cú pháp:

SELECT column_names FROM table1
UNION ALL
SELECT column_names FROM table2;

Ví dụ:

Sử dụng cùng ví dụ với san_pham_asan_pham_b, nếu bạn muốn lấy danh sách tất cả sản phẩm (bao gồm cả trùng lặp) từ cả hai bảng:

SELECT ten_san_pham FROM san_pham_a
UNION ALL
SELECT ten_san_pham FROM san_pham_b;

Khi nào sử dụng UNION và UNION ALL

  • Sử dụng UNION khi bạn muốn kết quả không có bản ghi trùng lặp.
  • Sử dụng UNION ALL khi bạn cần tất cả bản ghi, bao gồm cả bản ghi trùng lặp, hoặc khi bạn muốn tối ưu hiệu suất (vì UNION ALL không kiểm tra trùng lặp, nó thường nhanh hơn UNION).

Lưu ý rằng khi sử dụng UNION hoặc UNION ALL, mỗi câu lệnh SELECT trong chuỗi phải chọn cùng số lượng cột, và các cột này phải có kiểu dữ liệu tương thích.

Comments