2009-12-23 3 views
0

J'ai besoin de connaître l'utilisateur qui a posté le plus grand nombre de commentaires. Il y a deux tables: 1) les utilisateurs (Id, DisplayName) 2) les commentaires (Id, UserId, test). Je l'ai utilisé la requête suivanteSQL: Recherche de l'utilisateur avec le plus grand nombre de commentaires

Select DisplayName from users INNER JOIN (Select UserId, max(comment_count) as `max_comments from (Select UserId, count(Id) as comment_count from comments group by UserId) as` T1) as T2 ON users.Id=T2.UserId 

Cependant, cela me revient au nom d'affichage de l'utilisateur avec Id = 1 plutôt que ce que je veux. Comment est-ce que je travaille autour de ceci?

Répondre

1
SELECT TOP 1 
U.DisplayName, 
COUNT(C.ID) AS CommentCount 
FROM 
Users AS U 
INNER JOIN Comments AS C ON U.ID = C.UserID 
GROUP BY 
U.DisplayName 
ORDER BY 
COUNT(C.ID) DESC 
+0

Merci ... J'utilisais MySql et je devais utiliser 'LIMIT 1' au lieu de 'TOP 1' – Stormshadow

Questions connexes