การนับเฉพาะค่า NOT NULL จากหลายตารางพร้อมกันด้วย Subquery
ใช้ Subquery ใน SELECT clause เพื่อนับ COUNT(column) (นับเฉพาะ non-NULL) จากหลายตารางในคำสั่งเดียว
สร้างตารางแรกและข้อมูล
mysql> create table DemoTable1 (Id int); mysql> insert into DemoTable1 values(1), (NULL), (2), (3);
สร้างตารางที่สองและข้อมูล
mysql> create table DemoTable2 (Id int); mysql> insert into DemoTable2 values(10), (NULL), (NULL);
ข้อมูลในตาราง
DemoTable1: 1, NULL, 2, 3 (4 rows, 3 non-null) DemoTable2: 10, NULL, NULL (3 rows, 1 non-null)
คำสั่งนับ NOT NULL จากทั้งสองตาราง
mysql> select
-> (select count(Id) from DemoTable1) as CountFirstTableId,
-> (select count(Id) from DemoTable2) as CountSecondTableId;
ผลลัพธ์
+-------------------+--------------------+ | CountFirstTableId | CountSecondTableId | +-------------------+--------------------+ | 3 | 1 | +-------------------+--------------------+
อธิบาย COUNT(column) vs COUNT(*)
| ฟังก์ชัน | นับอะไร | ตัวอย่างข้างต้น |
|---|---|---|
COUNT(*) | ทุกแถว (รวม NULL) | DemoTable1: 4, DemoTable2: 3 |
COUNT(Id) | เฉพาะแถวที่ Id ไม่เป็น NULL | DemoTable1: 3, DemoTable2: 1 |