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

code

WRInaute impliqué
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:
$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 ?
 

code

WRInaute impliqué
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...
 

code

WRInaute impliqué
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
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é
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
 

Discussions similaires

Haut