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

MySQL นับ (*) จากหลายตาราง?


เพื่อให้บรรลุสิ่งนี้สำหรับหลายตาราง ให้ใช้ 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 วินาที)