MYSQL数据库的分组,排序问题

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

阅读 3.6k
5 个回答

先排序后分组

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

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


order by id desc

加个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;
新手上路,请多包涵

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

新手上路,请多包涵

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题