Bonjour à tous,
Dans un contexte Blog, je créé des articles qui possèdent chacun leur propre commentaire. (dites moi si vous avez besoin de la structure des tables)
Je souhaite donc récupérer le nb de commentaires pour les articles, je réalise la requête suivante :
Je récupère bien les articles qui possède des commentaires, et très logiquement je ne récupère pas les articles qui n'ont pas de commentaire.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 SELECT `articles`.`idArticle`, `articles`.`titre`, `articles`.`date`, `articles`.`description`, `articles`.`contenu`, COUNT(idCommentaire) AS `nbre_commentaire` FROM `articles` INNER JOIN `commentaire` ON idArticle=idArt GROUP BY `idArticle`, `titre`, `date`, `description`, `contenu`
Il faut que je fasse un UNION en faisant un select sur les articles qui ne possedent pas de commentaires ?
Indépendemment l'une de l'autre, cela fonctionnera. Mais on remarque très vite que le problème c'est que ma deuxième requete ne possède pas de count() donc je vais me faire jeter rapidement
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 SELECT a.idArticle, a.titre, count( c.idCommentaire ) FROM articles a, commentaire c WHERE a.idArticle = c.idArt GROUP BY a.idArticle, a.titre UNION SELECT a.idArticle, a.titre FROM articles a WHERE NOTEXISTS ( SELECT 1 FROM commentaire c WHERE a.idArticle = c.idArt )
S'il y a d'autre possibilité, je suis preneur évidemment
Merci pour votre aide!
Partager