zerkms
а так (если MySQL5):
SELECT с.id, IFNULL(m.m_count,0) + IFNULL(q.q_count,0)
FROM category c
LEFT JOIN (SELECT category_id, COUNT(*) m_count FROM message GROUP BY category_id) m ON m.category_id = c.id
LEFT JOIN (SELECT category_id, COUNT(*) q_count FROM question GROUP BY category_id) q ON q.category_id = c.id