我有下表,我希望获得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';
它没有用,所以我不知道该怎么做。
提前致谢!
答案 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。