ऐसा कुछ कैसा रहेगा:
SELECT m.MESSAGEID, sum((case when mp.messageid is not null then 1 else 0 end)) FROM MESSAGE m
LEFT JOIN MESSAGEPART mp ON mp.MESSAGEID = m.MESSAGEID
GROUP BY m.MESSAGEID;
COUNT() फ़ंक्शन प्रत्येक पंक्ति की गणना करेगा, भले ही वह शून्य हो। SUM() और CASE का उपयोग करके, आप केवल गैर-शून्य मानों की गणना कर सकते हैं।
संपादित करें:शीर्ष टिप्पणी से लिया गया एक सरल संस्करण:
SELECT m.MESSAGEID, COUNT(mp.MESSAGEID) FROM MESSAGE m
LEFT JOIN MESSAGEPART mp ON mp.MESSAGEID = m.MESSAGEID
GROUP BY m.MESSAGEID;
आशा है कि यह मदद करता है।