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

Bỏ qua NULL từ nhiều bảng, đếm số hàng NOT NULL trong một truy vấn MySQL

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.