Tạo bảng 1
mysql> CREATE TABLE DemoTable1 (Id INT);
INSERT INTO DemoTable1 VALUES(1),(NULL),(2),(3);
Tạo bảng 2
mysql> CREATE TABLE DemoTable2 (Id INT);
INSERT INTO DemoTable2 VALUES(10),(NULL),(NULL);
Dữ liệu
mysql> SELECT * FROM DemoTable1; -- 1, NULL, 2, 3
mysql> SELECT * FROM DemoTable2; -- 10, NULL, NULL
Truy vấn: Subquery COUNT(Id) trên từng bảng (COUNT bỏ qua NULL)
mysql> SELECT
-> (SELECT COUNT(Id) FROM DemoTable1) AS CountFirstTableId,
-> (SELECT COUNT(Id) FROM DemoTable2) AS CountSecondTableId;
Kết quả
+-------------------+--------------------+
| CountFirstTableId | CountSecondTableId |
+-------------------+--------------------+
| 3 | 1 |
+-------------------+--------------------+
Giải thích: COUNT(column) chỉ đếm giá trị không NULL. COUNT(*) đếm tất cả hàng. Subquery cho phép lấy tổng từ nhiều bảng trong một câu SELECT.