शून्य पंक्तियों को वापस करने का कारण यह है कि आप तालिका_1 में किसी मान पर समूह बना रहे हैं। चूंकि तालिका_1 में कोई मान नहीं है, इसलिए लौटने के लिए कोई पंक्तियाँ नहीं हैं। दूसरे तरीके से कहा, अगर आपने ग्रुप बाय से अपनी क्वेरी में t1.any_col लौटाया है तो:
SELECT `t1`.`any_col`, COUNT(`t2`.`name`)
FROM `table_1` `t1`
LEFT JOIN `table_2` `t2` ON `t1`.`key_id` = `t2`.`key_id`
WHERE `t1`.`another_column` = 123
GROUP BY `t1`.`any_col`
जब कोई पंक्तियाँ नहीं थीं तो t1.any_col के लिए क्या प्रदर्शित होगा? आप जो चाहते हैं उसे प्राप्त करने का एकमात्र तरीका है कि आप अपने परिणामों को किसी अन्य क्वेरी के साथ जोड़ दें जो तालिका_1 में कोई पंक्तियों की जांच नहीं करता है। इस उदाहरण में, मैं केवल कुछ ऐसा करने के लिए INFORMATION_SCHEMA दृश्य का उपयोग कर रहा हूं जिसके विरुद्ध मैं क्वेरी कर सकता हूं।
SELECT COUNT(`t2`.`name`)
FROM `table_1` `t1`
LEFT JOIN `table_2` `t2` ON `t1`.`key_id` = `t2`.`key_id`
WHERE `t1`.`another_column` = 123
GROUP BY `t1`.`any_col`
UNION ALL
SELECT 0
FROM INFORMATION_SCHEMA.TABLES
Where Not Exists( Select 1 From `table_1` )
LIMIT 1