WRInaute accro
Bonsoir à tous
Je suis pas fortiche en SQL et j'ai besoin de vos lumières.
J'ai, dans une table PRONO, les champs suivant qui m'intéressent :
| points | id_user |
5 1
5 1
10 2
50 2
Dans une table USER, les champs suivant :
id_user | pseudo
1 POPOL
2 LULU
Et une troisième table MESSAGES qui recense les messages postés sur mon forum par les membres :
j'y ai notamment les champs suivants :
id_message | nom ..
1 LULU
2 LULU
3 POPOL
4 LULU
Dans un premier temps, j'ai voulu sortir le classement des [user.nom] en fonction du total des [prono.points]. J'ai donc mis en place une requête SQL :
et ca fonctionne très bien.
Maintenant la complication :
Je voudrais pouvoir également classer les [user.nom] en fonction du total des [prono.points] descendant ET du nombre total de [messages.id_message] qui lui correspondent.
J'ai donc "bêtement" tenté de rajouter un COUNT(messages.id_message) d'un coté et un WHERE messages.nom=user.pseudo de l'autre :
Mais bon ca le fait pas du tout. Mon total de SUM(points) correspond pas du tout à ce que je voudrais, ni mon COUNT(id_message) non plus d'ailleurs.
D'ou ma question : avec les données indiquées ci dessus, comment obtenir un classement des user.pseudo selon la somme de points Descendante et le nombre de id_messages descendant ?
Merci à celui qui me dira : "C'est pas compliqué, essaie plutôt comme ça "
Je suis pas fortiche en SQL et j'ai besoin de vos lumières.
J'ai, dans une table PRONO, les champs suivant qui m'intéressent :
| points | id_user |
5 1
5 1
10 2
50 2
Dans une table USER, les champs suivant :
id_user | pseudo
1 POPOL
2 LULU
Et une troisième table MESSAGES qui recense les messages postés sur mon forum par les membres :
j'y ai notamment les champs suivants :
id_message | nom ..
1 LULU
2 LULU
3 POPOL
4 LULU
Dans un premier temps, j'ai voulu sortir le classement des [user.nom] en fonction du total des [prono.points]. J'ai donc mis en place une requête SQL :
Code:
SELECT SUM(points), prono.id_user, user.pseudo FROM prono,user WHERE user.id_user=prono.id_user GROUP BY id_user ORDER BY SUM(points) DESC
Maintenant la complication :
Je voudrais pouvoir également classer les [user.nom] en fonction du total des [prono.points] descendant ET du nombre total de [messages.id_message] qui lui correspondent.
J'ai donc "bêtement" tenté de rajouter un COUNT(messages.id_message) d'un coté et un WHERE messages.nom=user.pseudo de l'autre :
Code:
SELECT SUM(points), COUNT(messages.id_message), prono.id_user, user.pseudo FROM prono,user, messages WHERE messages.nom=user.nom AND user.id_user=prono.id_user GROUP BY id_user ORDER BY SUM(points) DESC
Mais bon ca le fait pas du tout. Mon total de SUM(points) correspond pas du tout à ce que je voudrais, ni mon COUNT(id_message) non plus d'ailleurs.
D'ou ma question : avec les données indiquées ci dessus, comment obtenir un classement des user.pseudo selon la somme de points Descendante et le nombre de id_messages descendant ?
Merci à celui qui me dira : "C'est pas compliqué, essaie plutôt comme ça "