Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

วิธีนับจำนวนแถวจากคำสั่ง UNION ใน MySQL


คำสั่งนับผลลัพธ์ของ UNION

หากต้องการนับจำนวนแถวจากผลลัพธ์ของ UNION ให้ใช้คำสั่ง SELECT COUNT(*) ร่วมกับ Subquery ดังนี้:

SELECT COUNT(*) FROM (
    SELECT yourColumnName FROM yourTableName1
    UNION
    SELECT yourColumnName FROM yourTableName2
) AS alias_name;

ตัวอย่างการใช้งาน

สร้างตารางทดสอบ 2 ตาราง และเพิ่มข้อมูลตัวอย่าง:

ตารางที่ 1: union_Table1

CREATE TABLE union_Table1 (UserId INT);
INSERT INTO union_Table1 VALUES (1), (10), (20);

ข้อมูลในตาราง:

+--------+
| UserId |
+--------+
| 1      |
| 10     |
| 20     |
+--------+

ตารางที่ 2: union_Table2

CREATE TABLE union_Table2 (UserId INT);
INSERT INTO union_Table2 VALUES (1), (30), (50);

ข้อมูลในตาราง:

+--------+
| UserId |
+--------+
| 1      |
| 30     |
| 50     |
+--------+

คำสั่งนับจำนวนแถวจาก UNION

เนื่องจาก UNION จะลบค่าซ้ำออกโดยอัตโนมัติ (ค่า 1 ปรากฏในทั้ง 2 ตาราง จะนับเพียงครั้งเดียว)

SELECT COUNT(*) AS UnionCount FROM (
    SELECT DISTINCT UserId FROM union_Table1
    UNION
    SELECT DISTINCT UserId FROM union_Table2
) AS tbl1;

ผลลัพธ์

+------------+
| UnionCount |
+------------+
| 5          |
+------------+

คำอธิบาย: ค่าที่ไม่ซ้ำกันคือ 1, 10, 20, 30, 50 รวม 5 ค่า