Question mysql : LEFT JOIN+COUNT

WRInaute occasionnel
Bonsoir à tous et bonne année.
J'ai un petit probleme sur une requete mysql qui est censée afficher les articles d'un auteur et le nombre de commentaires associés.
Seulement, le fait qu'il n'y ait pas au moins un commentaire par article fausse les résultats, et ce malgré le LEFT JOIN. Une fois qu'il y a un article sans aucun commentaire, les prochains articles dans ce cas ne ressortent pas dans les résultats. Voici la requête :

SELECT `article`.*, COUNT(`commentaire`.`id_comment`) AS `commentaires` FROM `article` LEFT JOIN `commentaire` ON `article`.`id_art`=`commentaire`.`art_comment` WHERE `article`.`auteur_art`=1 GROUP BY `commentaire`.`art_comment` ORDER BY `article`.`visites_art` DESC
 
WRInaute impliqué
si tu travailles sous mysql5 je te conseille d'utiliser plutôt des sous requêtes plus faciles à manier.
 
WRInaute occasionnel
J'ai la version 4 :(
J'ai essayé quelques trucs avec des sous-requêtes et ça n'a pas été concluant (c'est peut-être du à la version, je sais pas).
 
WRInaute discret
As-tu essayé ceci :

SELECT `article`.*, COUNT(`commentaire`.`id_comment`) AS `commentaires` FROM `article`, `commentaire` WHERE `article`.`id_art`=`commentaire`.`art_comment` AND `article`.`auteur_art`=1 GROUP BY `commentaire`.`art_comment` ORDER BY `article`.`visites_art` DESC
 
WRInaute occasionnel
Salut,
Oui, j'avais essayé sans le left join, ça n'avait pas marché. :(
On m'a donné une autre solution, pour ceux que ça interesse, la voici :

Code:
SELECT a.*, COUNT(c.`id_comment`) AS nbcommentaire 
FROM `article` AS a 
LEFT JOIN `commentaire`  AS c ON a.`id_art`=c.`art_comment` 
WHERE a.`auteur_art`=1 
GROUP BY a.`art_id` 
ORDER BY a.`visites_art` DESC

En gros, faut pas grouper sur un élément qui peut être nul, le reste c'est de l'allègement de code.
 
Discussions similaires
Haut