select count(*) from forummessages where parent = n;
ou n est un numéro de message d'origine.
ps : pour un forum, c'est mieux d'avoir deux tables : une pour les sujets, une pour les réponses. sinon on aboutit justement à ce genre de casse-tête, les données partagées par les deux types d'écrits ne justifiant pas de les réunir.
les sujets peuvent contenir le nombre de réponses, de vus, le nom du dernier posteur et la date du dernier message.
les messages peuvent contenir le numéro du message auquel ils répondent plus qq infos de hiérarchie (suivant ton forum).
etc ...