Fait 2 requêtes :)
Bonsoir, c'est encore moi ^^
Aujourd'hui je suis confronté à une petite colle dans le même type d'exercices que mon post précédent.
Je dois récupérer un article selon son id avec son contenu, son auteur (jusque là rien de plus enfantin me direz vous) mais aussi avec ses catégories. En effet les articles peuvent posséder plusieurs catégories. La liaison est établie dans la table suivante :
Categorie_article :
- categorie_id
- article_id
J'aimerais donc, en une seule requête et une seule ligne, récupérer les catégories de l'article en question. Pour le moment ma requête se présente comme suit mais ne me récupère qu'une seule catégorie (et si j'enlève le GROUP BY j'obtiens 2 lignes) :
Tout en sachant que la solution n'est pas de passer par les vues :/
Merci à vous pour vos lumières :)
5 réponses
Salut,
Cela me semble impossible sans faire 2 requêtes, il faut au moins une sous requête :
Cette requête renvoie l'article plus une nouvelle colonnes liste_categories, qui est égal à la concatenation, par des virgules, des categories liées à l'article courant
Justement le but c'est de le faire en une seule requêtes, c'est une petite formation que je fais dans le but d'apprendre certaines fonctions et méthodes du langage sql que je n'ai pas l'habitude d'utiliser. C'est vrai qu'ici l'exemple est bête et en toute logique 2 requêtes seraient beaucoup plus simple. Mais le but c'est de le faire en une seule requête, et j'avoue que je ne trouve pas cohérent de procéder de cette façon :/
Sinon Je te remercie connected c'est exactement ça =D
C'est surtout un pb de performances, sinon tu pars de categorie et tu left join sur article
Aussi oui, après réflexion un INNER JOIN aurait aussi fait l'affaire avec un GROUP_CONCAT dans la sélection des catégories :)