MySQL UNION

Giới thiệu về MySQL UNION

MySQL UNION là một phép toán trong ngôn ngữ truy vấn SQL cho phép kết hợp kết quả từ hai hoặc nhiều câu lệnh SELECT thành một tập hợp kết quả duy nhất. Điều này hữu ích khi bạn muốn lấy dữ liệu từ các bảng khác nhau hoặc từ các truy vấn khác nhau mà có cùng cấu trúc (số lượng và kiểu dữ liệu của các cột phải tương thích).

Cú pháp của MySQL UNION

SELECT cột1, cột2, ...
FROM bảng1
WHERE điều_kiện

UNION

SELECT cột1, cột2, ...
FROM bảng2
WHERE điều_kiện;

Lưu ý rằng:

  • Các cột trong các câu lệnh SELECT phải có cùng số lượng và kiểu dữ liệu tương tự.
  • Kết quả từ UNION sẽ loại bỏ các bản sao trùng lặp. Nếu bạn muốn giữ lại các bản sao, bạn có thể sử dụng UNION ALL.

Ví dụ về MySQL UNION

Ví dụ 1: Kết hợp dữ liệu từ hai bảng

Giả sử chúng ta có hai bảng: KhachHangNhaCungCap.

Bảng KhachHang:
| ID | Ten     | ThanhPho   |
|----|---------|------------|
| 1  | An      | Ha Noi     |
| 2  | Binh    | Ho Chi Minh |
| 3  | Chi     | Da Nang    |

Bảng NhaCungCap:
| ID | Ten     | ThanhPho   |
|----|---------|------------|
| 1  | Duy     | Ha Noi     |
| 2  | Hoa     | Da Nang    |
| 3  | Lam     | Ha Noi     |

Truy vấn:
SELECT Ten, ThanhPho FROM KhachHang
UNION
SELECT Ten, ThanhPho FROM NhaCungCap;

Kết quả sẽ là:

| Ten   | ThanhPho   |
|-------|------------|
| An    | Ha Noi     |
| Binh  | Ho Chi Minh |
| Chi   | Da Nang    |
| Duy   | Ha Noi     |
| Hoa   | Da Nang    |
| Lam   | Ha Noi     |

Ví dụ 2: Sử dụng UNION ALL

Để giữ lại các bản sao, bạn có thể sử dụng UNION ALL. Giả sử bảng KhuVuc lưu trữ thông tin khu vực.

Bảng KhuVuc:
| ID | Ten     | ThanhPho   |
|----|---------|------------|
| 1  | MienBac| Ha Noi     |
| 2  | MienTrung| Da Nang  |

Truy vấn:
SELECT Ten, ThanhPho FROM KhachHang
UNION ALL
SELECT Ten, ThanhPho FROM NhaCungCap;

Kết quả sẽ bao gồm tất cả các bản ghi, kể cả bản sao:

| Ten   | ThanhPho   |
|-------|------------|
| An    | Ha Noi     |
| Binh  | Ho Chi Minh |
| Chi   | Da Nang    |
| Duy   | Ha Noi     |
| Hoa   | Da Nang    |
| Lam   | Ha Noi     |

Kết luận

MySQL UNION là một công cụ mạnh mẽ cho việc kết hợp dữ liệu từ nhiều nguồn. Việc nắm vững cách sử dụng UNION và UNION ALL sẽ giúp bạn dễ dàng hơn trong việc truy xuất và phân tích dữ liệu trong cơ sở dữ liệu của mình.