เพื่อให้บรรลุสิ่งนี้สำหรับหลายตาราง ให้ใช้ UNION ALL
ไวยากรณ์มีดังนี้
เลือก sum(variableName.aliasName) จาก ( เลือก count(*) เป็น yourAliasName จาก yourTableName1 UNION ALL เลือก count(*) เป็น yourAliasName จาก yourTableName2 ) yourVariableName;
ให้เราใช้ไวยากรณ์ข้างต้น ฉันกำลังใช้ฐานข้อมูลตัวอย่างซึ่งมีตารางมากกว่า
ตารางที่เราใช้อยู่คือ
- ตัวอย่างผู้ใช้
- สาธิตที่ไหน
นี่คือแบบสอบถามเพื่อแสดงระเบียนทั้งหมดของทั้งสองตาราง แบบสอบถามมีดังต่อไปนี้เพื่อแสดงบันทึกจากตาราง 'userdemo'
mysql> เลือก *จาก userdemo;
ต่อไปนี้เป็นผลลัพธ์
<ก่อนหน้า>+---------+----------+-----------------+| รหัสผู้ใช้ | ชื่อผู้ใช้ | RegisteredCourse |+-------------+----------+-------------------+| 1 | จอห์น | ชวา || 2 | แลร์รี่ | ค || 3 | แครอล | C++ || 4 | ไมค์ | C# |+-------+----------+-----------------+4 แถวในชุด (0.08 วินาที)แบบสอบถามมีดังต่อไปนี้เพื่อแสดงบันทึกจากตาราง 'wheredemo'
mysql> เลือก *from wheredemo;
ต่อไปนี้เป็นผลลัพธ์
<ก่อนหน้า>+------+---------+| รหัส | ชื่อ |+------+---------+| 101 | แม็กซ์เวลล์ || 110 | เดวิด || 1000 | แครอล || 1100 | บ๊อบ || 115 | แซม |+------+---------+5 แถวในชุด (0.20 วินาที)นี่คือแบบสอบถามที่จะใช้ count(*) จากทั้งสองตารางด้านบน
mysql> เลือกผลรวม (tbl.EachTableCount) -> จาก -> ( -> เลือกจำนวน (*) เป็น EachTableCount จาก userdemo -> UNION ALL -> เลือกจำนวน (*) เป็น EachTableCount จาก wheredemo -> )tbl;
ต่อไปนี้เป็นผลลัพธ์
<ก่อนหน้า>+-----------------------------------+| sum(tbl.EachTableCount) |+-------------------------+| 9 |+-------------------------------------- +1 แถวในชุด (0.00 วินาที)