Bagaimana dengan yang seperti ini:
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;
Fungsi COUNT() akan menghitung setiap baris, meskipun memiliki null. Menggunakan SUM() dan CASE, Anda hanya dapat menghitung nilai bukan nol.
EDIT:Versi yang lebih sederhana diambil dari komentar teratas:
SELECT m.MESSAGEID, COUNT(mp.MESSAGEID) FROM MESSAGE m
LEFT JOIN MESSAGEPART mp ON mp.MESSAGEID = m.MESSAGEID
GROUP BY m.MESSAGEID;
Semoga membantu.