UNION ALL के साथ एकाधिक टेबल्स की कुल पंक्ति गणना
कई टेबल्स की कुल पंक्तियाँ गिनने के लिए प्रत्येक टेबल का COUNT(*) लेकर UNION ALL से जोड़ें, फिर SUM() करें।
सिंटैक्स
SELECT SUM(tbl.aliasName) FROM (
SELECT COUNT(*) AS aliasName FROM table1
UNION ALL
SELECT COUNT(*) AS aliasName FROM table2
) tbl;
उदाहरण: दो टेबल्स - userdemo और wheredemo
टेबल userdemo
+--------+----------+------------------+ | UserId | UserName | RegisteredCourse | +--------+----------+------------------+ | 1 | John | Java | | 2 | Larry | C | | 3 | Carol | C++ | | 4 | Mike | C# | +--------+----------+------------------+ 4 rows
टेबल wheredemo
+------+---------+ | Id | Name | +------+---------+ | 101 | Maxwell | | 110 | David | | 1000 | Carol | | 1100 | Bob | | 115 | Sam | +------+---------+ 5 rows
कुल गणना क्वेरी
mysql> SELECT SUM(tbl.EachTableCount) FROM (
-> SELECT COUNT(*) AS EachTableCount FROM userdemo
-> UNION ALL
-> SELECT COUNT(*) AS EachTableCount FROM wheredemo
-> ) tbl;
परिणाम
+-------------------------+ | SUM(tbl.EachTableCount) | +-------------------------+ | 9 | +-------------------------+
क्यों UNION ALL?
UNION ALLडुप्लिकेट पंक्तियाँ नहीं हटाता (तेज़)UNIONडुप्लिकेट हटाता है (धीमा, अनावश्यक)- प्रत्येक
COUNT(*)एक पंक्ति लौटाता है, इसलिए डुप्लिकेट की चिंता नहीं
अधिक टेबल्स के लिए विस्तार
SELECT SUM(tbl.cnt) FROM (
SELECT COUNT(*) AS cnt FROM table1
UNION ALL SELECT COUNT(*) FROM table2
UNION ALL SELECT COUNT(*) FROM table3
-- और टेबल्स जोड़ें
) tbl;