Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Truy vấn đơn lấy tổng COUNT từ nhiều bảng trong MySQL

Sử dụng UNION ALL kết hợp truy vấn con để gộp số lượng bản ghi từ nhiều bảng, sau đó SUM().

Ví dụ minh họa

Tạo bảng 1:

mysql> CREATE TABLE DemoTable1 (Id INT, Name VARCHAR(30));

Chèn dữ liệu:

mysql> INSERT INTO DemoTable1 VALUES(10, 'Chris Brown'), (20, 'David Miller'), (30, 'John Adam');

Tạo bảng 2:

mysql> CREATE TABLE DemoTable2 (Amount INT);

Chèn dữ liệu:

mysql> INSERT INTO DemoTable2 VALUES(100), (200), (300);

Truy vấn lấy tổng COUNT từ 2 bảng:

mysql> SELECT SUM(AllCount) AS Total_Count
    FROM (
        (SELECT COUNT(*) AS AllCount FROM DemoTable1)
        UNION ALL
        (SELECT COUNT(*) AS AllCount FROM DemoTable2)
    ) t;

Kết quả:

+-------------+
| Total_Count |
+-------------+
| 6           |
+-------------+

Giải thích:

  • UNION ALL giữ trùng lặp (nếu có), nhanh hơn UNION.
  • Truy vấn con t (alias) bắt buộc trong MySQL.
  • Mở rộng cho N bảng: thêm các UNION ALL (SELECT COUNT(*) FROM BangN).