Résolu : Besoin d'aide sur une requete MySQL

code
WRInaute impliqué
WRInaute impliqué
 
Messages: 648
Inscription: 29 Juil 2005

Résolu : Besoin d'aide sur une requete MySQL

Message le Dim Fév 11, 2007 6:44

Bonjour,

alors voilà, je bloque sur une requête qui me paraît pourtant assez simple...

Admettons que j'aie 2 tables :
- une table "chanteur"
- une table "album"

Je voudrais compter le nombre d'occurences des chanteurs dans ma table "album". ça c'est facile, je fais donc :

Code: Tout sélectionner
$ma_requete="SELECT titre_album, COUNT(chanteur) AS cnt FROM `album` ";


Mais ce qui me pose problème, c'est que je voudrais maintenant classer les résultats par ordre décroissant d'occurences trouvées. Ainsi il faudrait que la requete me renvoie comme premier résultat le chanteur qui a le plus d'album...

Il me semblait que AS permettait de créer un alias pour un champ de la table (en l'occurence le champ "chanteur" de ma table "album") mais si je fais GROUP BY cnt DESC >> j'ai une belle erreur :lol:

Comment puis-je obtenir le résultat escompté avec une seule requête ?
Dernière édition par code le Dim Fév 11, 2007 9:27, édité 1 fois.

fablezouave
WRInaute discret
WRInaute discret
 
Messages: 109
Inscription: 20 Déc 2006

Message le Dim Fév 11, 2007 8:27

Salut

C'est pas GROUP BY cnt DESC, mais ORDER BY cnt DESC

fab

code
WRInaute impliqué
WRInaute impliqué
 
Messages: 648
Inscription: 29 Juil 2005

Message le Dim Fév 11, 2007 9:05

Je ne crois pas, car lorsque je fais ORDER BY cnt, ça me renvoie le total des enregistrements de la table et si je laisse titre_album en premier élément de la requete ça me renvoie une erreur...
Dernière édition par code le Dim Fév 11, 2007 9:14, édité 1 fois.

fablezouave
WRInaute discret
WRInaute discret
 
Messages: 109
Inscription: 20 Déc 2006

Message le Dim Fév 11, 2007 9:07

Quelle est la structure exacte de tes 2 tables ?

fab

code
WRInaute impliqué
WRInaute impliqué
 
Messages: 648
Inscription: 29 Juil 2005

Message le Dim Fév 11, 2007 9:18

En fait ma requete ne s'effectue que sur la table album, qui a les champs suivants :


- id_album : mediumint 8, auto_increment
- titre_album : varchar (150)
- chanteur : varchar (150)
et plusieurs autres champs qui ne m'intéressent pas ici

fablezouave
WRInaute discret
WRInaute discret
 
Messages: 109
Inscription: 20 Déc 2006

Message le Dim Fév 11, 2007 9:22

bah ...

$ma_requete="SELECT titre_album, COUNT(chanteur) AS cnt FROM `album` GROUP BY id_album ORDER BY cnt DESC";

doit te retourner ce que tu souhaites (si je suis bien réveillé)

fab

code
WRInaute impliqué
WRInaute impliqué
 
Messages: 648
Inscription: 29 Juil 2005

Message le Dim Fév 11, 2007 9:27

Tu es un As ! c'est exactement ça, c'est moi qui ne suis pas réveillé, à chaque fois, j'oubliais un des éléments GROUP BY/ORDER BY et me suis cassé la tête un bon moment ! Tu m'enlèves une épine du pied ! merci beaucoup


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: erestrebian et 0 invités