सबक्वेरीज़ के साथ दो टेबल्स की रो काउंट एक साथ प्राप्त करना
एक ही क्वेरी में दो अलग-अलग टेबल्स की पंक्ति संख्या गिनने के लिए सबक्वेरीज़ का उपयोग करें।
पहली टेबल बनाएं:
mysql> CREATE TABLE DemoTable1 (
Name VARCHAR(40)
);
रिकॉर्ड्स इन्सर्ट करें:
mysql> INSERT INTO DemoTable1 VALUES ('Chris');
mysql> INSERT INTO DemoTable1 VALUES ('Robert');
mysql> INSERT INTO DemoTable1 VALUES ('Mike');
पहली टेबल देखें:
mysql> SELECT * FROM DemoTable1;
आउटपुट:
+--------+ | Name | +--------+ | Chris | | Robert | | Mike | +--------+
दूसरी टेबल बनाएं:
mysql> CREATE TABLE DemoTable2 (
Score INT
);
रिकॉर्ड्स इन्सर्ट करें:
mysql> INSERT INTO DemoTable2 VALUES (86); mysql> INSERT INTO DemoTable2 VALUES (98); mysql> INSERT INTO DemoTable2 VALUES (75);
दूसरी टेबल देखें:
mysql> SELECT * FROM DemoTable2;
आउटपुट:
+-------+ | Score | +-------+ | 86 | | 98 | | 75 | +-------+
एक ही क्वेरी में दोनों टेबल्स की रो काउंट प्राप्त करें:
mysql> SELECT
(SELECT COUNT(*) FROM DemoTable1) AS FirstTableCount,
(SELECT COUNT(*) FROM DemoTable2) AS SecondTableCount
FROM DUAL;
आउटपुट:
+-----------------+------------------+ | FirstTableCount | SecondTableCount | +-----------------+------------------+ | 3 | 3 | +-----------------+------------------+
व्याख्या:
- सबक्वेरीज़: प्रत्येक SELECT COUNT(*) एक स्केलर मान (सिंगल नंबर) लौटाता है
- FROM DUAL: MySQL में डमी टेबल है जब कोई वास्तविक टेबल नहीं चाहिए
- कॉलम एलियास: FirstTableCount और SecondTableCount परिणाम को पठनीय बनाते हैं
वैकल्पिक तरीके:
-- तरीका 1: UNION ALL के साथ (यदि कॉलम नाम समान हों)
SELECT 'DemoTable1' AS TableName, COUNT(*) AS RowCount FROM DemoTable1
UNION ALL
SELECT 'DemoTable2', COUNT(*) FROM DemoTable2;
-- तरीका 2: INFORMATION_SCHEMA से (मेटाडेटा, तेज़ लेकिन अनुमानित)
SELECT TABLE_NAME, TABLE_ROWS
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME IN ('DemoTable1', 'DemoTable2');
नोट: INFORMATION_SCHEMA.TABLE_ROWS InnoDB टेबल्स के लिए अनुमानित हो सकता है। सटीक काउंट के लिए COUNT(*) उपयोग करें।