[Mysql] Demande de requete MAX()...

Demande de requete MAX()... [Mysql] - SQL/NoSQL - Programmation

Marsh Posté le 20-10-2008 à 14:52:06    

Bonjour,
 
J'aimerai en gros récupérer la ligne la plus récente (date) de chaque catégorie (categorie) dans une table (jos_table)  :
 

Code :
  1. Table : jos_table
  2. id
  3. titre
  4. date
  5. categorie


 
J'ai deja essayé :
SELECT id, max(date), titre, categorie FROM jos_table GROUP BY categorie ORDER BY categorie
 
Ca ne marche pas, ca me récupérer bien la dernière date, mais dans la ligne affichée, les autres champq ne correpondent pas à cette date (en gros ca prend le max que de la date)
 
Une idée ?
Merci !

Reply

Marsh Posté le 20-10-2008 à 14:52:06   

Reply

Marsh Posté le 20-10-2008 à 15:07:31    

c'est normal puisque les autres champs ne font pas partie du group by. Pour chaque categorie, il récupère bien le max de la date, mais aussi tous les id et titre qu'il trouve.

 

En mysql je sais pas, mais sous oracle j'aurais fait un truc dans ce style :

 
Code :
  1. select a.id, a.titre, a.date, a.categorie
  2. from
  3.   jos_table a
  4. inner join (select categorie, max(date) date_max
  5.             from jos_table
  6.             group by categorie) b on
  7.   a.categorie = b.categorie
  8.   and a.date = b.date_max


Message édité par tet2neu le 20-10-2008 à 15:08:36
Reply

Marsh Posté le 20-10-2008 à 15:19:15    

Merci ca marche nickel ! Je me fais avoir car certaines ligne dans la catégorie ont la même date, mais c'est "normal" donc tout baigne !

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed