在mysql选择查询中按顺序和分组相同的行

时间:2012-05-25 10:33:21

标签: mysql

我有这个结构的表

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

我想检索具有最大日期的所有from_id(与具有最大日期的id不同)

id |from_id |to_id |date

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

我使用了这个查询

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

但是我得到了具有最小日期值的from_id

1 个答案:

答案 0 :(得分:2)

试试这个 -

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