2 votes

order by et group by avec les mêmes lignes dans une requête mysql select

J'ai une table avec cette structure

id |from_id |to_id |date

1  |1       |3     |25
2  |1       |3     |24
3  |2       |3     |28
4  |2       |3     |20
5  |2       |3     |30

Je veux récupérer tous les from_id avec la date maximale (distinct de id avec la date maximale).

ie,

id |from_id |to_id |date

1  |1       |3     |25
5  |2       |3     |30

J'ai utilisé cette requête

`select * from table where to_id=3 group by from_id order by date desc`

Mais j'obtiens le from_id avec la plus petite valeur de date.

2voto

JHS Points 4317

Essayez ceci -

SELECT tablename.*
FROM (SELECT from_id, MAX(date) dat
      FROM tablename 
      GROUP BY from_id) innerquery
  JOIN tablename
    ON  innerquery.from_id = from_id
    AND innerquery.dat = date

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X