关于mysql 从一张表查询出每个ID最新的记录的方式

阅读: 评论:0

关于mysql 从一张表查询出每个ID最新的记录的方式

关于mysql 从一张表查询出每个ID最新的记录的方式

问题描述:

在开发过程中经常遇到从某一操作记录表 中查出每一个用户的最新的一条记录。

解决方法:

1、首先按照时间降序 ,然后再按照ID分组

select * from 

( select * from  A  order by date desc)as a

group by a.id

这样查询结果并不会得到想要的结果,因为mysql 5.7之后的子查询里就默认不会使用排序,如果想要子查询使用排序,则可以加上limit限制条件

select * from 

( select * from  A  order by date desc limit 1000)as a

group by a.id

这样的操作是可以的,但是limit后面跟的数字应当大一点,如果数据比较多,就很尴尬 可能查不全

2、首先按照id分组,查询出最大日期值,然后进行外连接, 最后去重

SELECT DISTINCT *  from A   as a

INNER  JOIN 

(

        SELECT MAX(date_from) as date_from  A  GROUP  BY   ID

 )  as  b

on

a.date_from=b.date_from

GROUP BY

ID

注意,group by的查询字段 只能是聚合函数 或者主键  或者  group by 的对象,所以这么操作就可以查询出来

本文发布于:2024-02-04 19:39:36,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170714968958905.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:方式   最新   mysql   ID
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23