0


SQL 如何查询一张表中最新的操作数据

SELECT t1.*
FROM your_table_name t1
INNER JOIN (
SELECT column, MAX(operation_time) as max_time
FROM your_table_name
GROUP BY column
) t2 ON t1.column = t2.column AND t1.operation_time = t2.max_time;

your_table_name 为表名称,column 为关联字段,operation_time为操作时间(选择的维度可以是创建时间,也可以是修改时间或者表中其它时间字段),max_time为别名

示例:当前有一张积分表,用户注册即送10000积分,并且记录用户每次操作之后的数据,用户下单一次或者用户充值,积分表就会新增一条数据,表字段和表数据如下图
在这里插入图片描述
在这里插入图片描述
数据表明:user_id为1的客户09-21注册,09-22使用3000积分,09-23充值1000积分,09-24使用4000积分,最终剩余4000积分,同理,user_id为2的客户最终剩余3300积分;

此时我们需要获取这两个用户最后一次使用的积分以及剩余的积分,则可以使用以下sql获取数据:
SELECT t1.*
FROM user_points t1
INNER JOIN (
SELECT user_id, MAX(create_time) as max_time
FROM user_points
GROUP BY user_id
) t2 ON t1.user_id = t2.user_id AND t1.create_time = t2.max_time;
在这里插入图片描述

标签: sql 数据库

本文转载自: https://blog.csdn.net/weixin_45896833/article/details/142587256
版权归原作者 ztihcy影殇 所有, 如有侵权,请联系我们删除。

“SQL 如何查询一张表中最新的操作数据”的评论:

还没有评论