KosMos
Posté le: 28 Déc 2004, 12:58 Sujet du message: Mysql - Limit et left join Bonjours à tous, me voila confronté à un problème assez particulier... :
Je dispose d'une table articles, contenant des... articles et composé des champs suivants :
id | type | title | resume | text | date | author_id
Ainsi que d'une table comments contenant les commentaires des dits articles et composé des champs suivants :
id | article_id | name |text | date
Je cherche à récuperer les 8 premiers articles de la tables ainsi que les commentaires correspondants à chaque articles. Voici donc ma requette mysql :
SELECT a.id,a.title,a.resume,a.date,
c.id AS c_id,c.name AS c_name,c.text AS c_text,c.date AS c_date
FROM articles AS a
LEFT JOIN comments AS c ON c.article_id=a.id
ORDER BY a.id DESC
LIMIT 8
Cependant, le LIMIT s'applique sur le nombre de champs retournés, et non sur le nombre d'article. Si un premier article comporte 5 commentaires, et le suivant 3, la requette ne retournera que ces deux la.
Impossible de faire un GROUP BY a.id, car je n'aurais alors accès qu'au premier commentaire de chaque article.
Impossible de se débrouiller avec un GROUP BY c.id, puisque si deux articles ne comportent pas de commentaires, ils seront groupés ensemble !
Je suis complètement dérouté face à se problème, si quelqu'un pouvais m'éclairer, je lui en serait très reconaissant.
Partager