>>. Premièrement, je veux limiter le nombre de maxrows retournés
Dans le meilleur des cas c'est quelque chose qui devrait être fait au niveau de DB. Elle pourrait également être faite en code de CF. Mais il n'y a aucun point encourant les frais généraux de retirer les données qui ne seront pas employées.
Vous pourriez employer probablement une table dérivée pour limiter les résultats dans le SQL. En d'autres termes, choisir les 10 mises à jour PRINCIPALES d'abord, puis JOINDRE aux autres tables. La syntaxe et la structure exactes est personne à charge de base de données. Le DESSUS d'utilisation de la milliseconde SQL, MySQL emploie la LIMITE, etc.….
En outre, n'importe quel scénario de disques du « principal X » implique de commander les disques par une « certaine colonne ». Je suppose que vous voulez les dernières 10 mises à jour… ? Quelques bases de données limitent quelles opérations vous pouvez effectuer dans une table dérivée. Ainsi il est très probable votre SQL réel aura besoin tordre…
CHOISIR s.sID, s.wUserID, s.sStatus, ..... d'autres colonnes…
DE
(
CHOISIR LE PRINCIPAL 10 Sid, wUserID, sStatus, ...... OtherColumns….
Des statusupdates
ORDRE PAR sCreatedDate DESC
) s
La GAUCHE JOIGNENT les utilisateurs u SUR s.wUserID=u.wUserID
La GAUCHE JOIGNENT les commentaires c SUR c.inreplyto = s.sID
La GAUCHE JOIGNENT le Cu d'utilisateurs SUR c.wUserID=cu.wUserID
ORDRE PAR s.sCreatedDate DESC, s.sID
>> Deuxièmement, je voudrais ajouter un « compte » pour le nombre de commentaires pour chaque statut.
Vous voulez montrer le compte avant ou après les commentaires. Si vous voulez le montrer après que les commentaires, alors using un cfset dans la boucle est très bien. Si vous devez la montrer _before_ les commentaires, alors évidemment vous devrez savoir les totaux en avant du temps.