Page 1 sur 1
Compter sur deux tables
Posté : 15 févr. 2008, 21:24
par cicom
Bonjour à tous,
Je décris mon problème j'ai une table membre avec un champ pseudo(et d'autres champs) et une table comment avec notamment aussi un champ pseudo.
Je voudrais savoir s'il est possible par simple requêtes sql de compter le nombre d'équivalence de la table comment avec la table membres et de trier par ordre décroissant (en fait l'idée c'est de compter le nombre de commentaires pour chaque membre et de les trier par ordre décroissant de commentaires.
Une idée de la syntaxe (jointure peut être? ou restriction cartésienne...)
Merci à tous de votre aide!
Posté : 15 févr. 2008, 21:40
par zeus
Alors la résolution passe par plusieurs points
_En sélectionnant tous les enregistrements dans ta table commentaire
_En ajoutant un group by sur le pseudo, tu vas regrouper les enregistrements pour obtenir une seule occurrence par pseudo
_En plaçant un COUNT(1) dans le SELECT, tu vas obtenir le nombres de commentaires par pseudo.
La jointure avec la table membre n'est pas utile si tu n'a pas besoin des données de cette table
Posté : 15 févr. 2008, 22:48
par cicom
Salut
alors un truc dans ce genre (je ne connais pas group by alors je fais un essai)
SELECT count(*) FROM comment WHERE reg = '1' GROUP BY (pseudo) ORDER BY quoi? DESC ??
Merci de ton aide!
Posté : 15 févr. 2008, 22:53
par zeus
pour le GROUP BY, il y a juste les parenthèses en trop.
Sinon, COUNT(*) représente le nombre de commentaires par pseudo. Si tu veux trier par nombre de commentaire, que faut-il mettre dans le ORDER BY ?

Posté : 15 févr. 2008, 23:28
par cicom
J'aurais tendance à faire un petit alias comme cela correct?
J'ai oublié un truc faut que je selectionne le pseudo aussi.
SELECT count(*) AS nbcom, pseudo FROM comment WHERE reg = '1' GROUP BY pseudo ORDER BY nbcom DESC
Merci beaucoup de ton aide.
Posté : 16 févr. 2008, 00:08
par zeus
Modération :
cicom, si ta question est résolue, pense à ajouter le tag [Résolu]
pour indiquer aux personnes qui voudront consulter ce sujet qu'il contient une solution.
Tu peux réaliser cette opération en cliquant sur le bouton
en haut à gauche de ce sujet.
Posté : 16 févr. 2008, 09:17
par cicom
Salut,
Bah je sais pas si elle est résolue j'attendais que tu corriges, comme tu pourras le voir sur tous mes messages précédents je ne suis pas du genre à oublier le résolu quand c'est le cas
Je vais tester par moi même pour voir ce que SQL me rend et voir ce qu'il se passe...
Merci de ton aide, je mettrai résolu quand ça marchera
edit
SUper ca marche! Merci beaucoup! Je mets résolu!
Posté : 16 févr. 2008, 09:30
par zeus
Ah d'accord ...
Je pensais que tu me disais que ta requête fonctionnait

Posté : 16 févr. 2008, 09:48
par cicom
Ok pas de problème et à la prochaine requête SQL

Posté : 16 févr. 2008, 13:58
par Truc
Je vais tester par moi même pour voir ce que SQL me rend et voir ce qu'il se passe...
la voix de la sagesse
Faut pas avoir peur de tester par toi même surtout que tu avais fait le plus gros du travail.
Au pire tu risque un message d'erreur pas bien grave

Posté : 17 févr. 2008, 23:38
par cicom
Oué je suis au courant qu'on ne peut (presque) rien casser en php/sql mais bon une fois que l'on a lancé un sujet je trouve plus convivial de le traiter tous ensemble plutôt que seul dans son coin non?
En tous cas merci pour le coup de main!