Làm thế nào về một cái gì đó như thế này:
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;
Hàm COUNT () sẽ đếm mọi hàng, ngay cả khi nó có giá trị rỗng. Sử dụng SUM () và CASE, bạn chỉ có thể đếm các giá trị không rỗng.
CHỈNH SỬA:Một phiên bản đơn giản hơn được lấy từ bình luận trên cùng:
SELECT m.MESSAGEID, COUNT(mp.MESSAGEID) FROM MESSAGE m
LEFT JOIN MESSAGEPART mp ON mp.MESSAGEID = m.MESSAGEID
GROUP BY m.MESSAGEID;
Hy vọng điều đó sẽ hữu ích.