0

一个ID对应好几个ContractID,根据IDgroupby,想取到合同时间最新的那条,但是默认都是取的第一条。有什么好的办法,效率比较高的

5个回答

1

先排序后分组

select id,ContractID from (select id,ContractID from table order by time desc) a group by id;
0

倒序排列id 获取的就是最新插入的id


order by id desc

0

加个id和合同时间date_time的复合索引:

select a.* from table a join (select id,max(date_time) dt from table group by id) b on a.id=b.id and a.date_time=b.date_time;
0

select id,max(created_at) from test group by contract_id

0

查询出所有的内容,foreach循环处理,可以用rsort对时间字段排序,然后取出第一个

撰写答案