选择错误顺序的不同

时间:2017-03-08 00:04:43

标签: mysql sql

我有下表,我希望获得3个具有最新条目的个人ID。

id |     date
70 | 06.03.2017 10:55
71 | 07.03.2017 23:23
72 | 07.03.2017 23:30
72 | 07.03.2017 23:30
72 | 07.03.2017 23:30
73 | 07.03.2017 23:49
73 | 07.03.2017 23:51 
70 | 08.03.2017 00:00
74 | 08.03.2017 00:05
70 | 08.03.2017 00:06
18 | 08.03.2017 00:08 (wanted)
70 | 08.03.2017 00:11 (wanted)
74 | 08.03.2017 00:15 (wanted)

我尝试了几个选项(子查询,分组依据,顺序),但没有一个可行。

我尝试的最新消息是:

  $preview_create = 'select id ' 
              . 'from ( '
              . 'select id from table '
              . 'order by date desc'
              . ') as sub '
              . 'group by id '
              . 'limit 3';

它没有用,所以我不知道该怎么做。

提前致谢!

1 个答案:

答案 0 :(得分:0)

首先,获取每个ID的最新日期,换句话说,按ID分组:

select id, max(`date`) as `date`
from yourtable
group by id

其次,按上述查询提取的date排序,表示:

select id
from (
    select id, max(`date`) as `date`
    from yourtable
    group by id
) t
order by `date` desc
limit 3

请参阅sqlfiddle中的demo