Requet sql, les derniers articles de chaque catégorie

Nouveau WRInaute
Bonjour,

Je veux afficher les 5 derniers article de chaque catégorie.
j'ai fais la requet suivante

Code:
SELECT id,titre,categorie FROM article GROUP BY categorie LIMIT 4

mais cela m'affiche qu'un seul article de chaque catégorie, quelle est la requet ou la commande exact a faire ?

Merci
 
WRInaute accro
C'est assez compliqué à faire en une seule requête si tu veux avoir les X derniers de chaque catégorie en une seule requête (et que la liste des catégories n'est pas connue d'avance, i.e. "en dur"), mais ça donne quelque chose comme:

select ... from articles a,categories c where a.categorie=c.id and a.id in (select id from articles a2 where a2.categorie=a.categorie order by date desc limit 5)

Le problème, c'est que ça marche avec postgresql, mais je ne suis pas sûr que ça marche avec mysql (en tous cas ça ne marche pas sur toutes les versions de mysql), et je ne suis pas sûr qu'il y ait une façon simple de contourner le problème (il y a au moins une façon très tordue de le faire, mais c'est tellement horrible que je ne vais pas développer). Si tu n'en veux qu'un seul par catégorie c'est par contre tout à fait faisable.

Jacques.
 
Nouveau WRInaute
J'ai essayé mais cela me donne:

MySQL a répondu:
#1235 - This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'

Alors ma version de mysql ne me permet pas de faire un LIMIT dans un IN...
 
WRInaute accro
Je sais qu'en 5.0 ça ne passe pas, je ne sais pas ce que ça donne avec les versions plus récentes.

Jacques.
 
WRInaute passionné
autant pour moi jacques

mais apparemment c'est quand même une fonction de base ! pourquoi ça passerait pas ?
 
WRInaute accro
Je ne sais pas très bien, je ne vois pas trop la complication, mais je ne connais pas bien les entrailles de mysql. Avec postgresql en tous cas ça marche très bien :)

Jacques.
 
Discussions similaires
Haut