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 ALLgiữ trùng lặp (nếu có), nhanh hơnUNION.- 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).