Je bloc sur une requête sql

Bonjour,

Je sais que webrankinfo n'est pas le site le plus aproprié pour ce genre de question, mais je tente quand même le coup (apres 2 heures de recherche infructueuses sur internet).
Je n'arrive pas à ecrire la requête sql suivante :
J'ai une table CELEBRITE avec une clée primaire ID_CELEBRITE
une table ARTICLE avec une clée primaire CODE_ARTICLE
une relation n n entre ces deux tables avec la table CELEBRITE_ARTICLE qui contient 2 champs :
ID_CELEBRITE et CODE_ARTICLE
Et je désire extraire les 10 celebrités ayant le plus d'articles associés.
Je pense pas que ce soit tres compliqué, mais ca l'est déja trop pour moi ;)
Merci d'avance.
 
il faut que tu te tournes vers having, laisse moi 2mn, je dois avoir ça quelque part :) (j'éditerais ce post)

donc, ça nous donne :
SELECT *,(SELECT COUNT(*) FROM celebrite WHERE celebrite.id_celebrite = article.id_celebrite GROUP BY celebrite.id_celebrite) AS nb_articles FROM celebrite ORDER BY nb_articles DESC LIMIT 10

...et bien sûr, pas besoin de HAVING la dedans :)
Ca marchera sous MySQL en version récente (5.0 minimum, il me semble)

Explication de la requete: tu sélectionnes le nombre d'articles de chaque célébrité grâce à une sous-requete, tu appelles ce résultat 'nb_articles', et tu tries sur ce score.
 
Merci !!!
J'ai pas réussi à faire comme ca, mais avec le même principe et en utilisant une table temporaire, je m'en suis sortie.
 
SELECT c.*, COUNT(t.id_celebrite) as count
FROM celebrite c
LEFT JOIN tablederelation t ON (c.id_celebrite = t.id_celebrite)
GROUP BY c.id_celebrite
ORDER BY count DESC
LIMIT 10

Ya pas besoin de sous requete ou de temp table :o
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut