mysql - 如何通过 MAX(date) 检索行数据?

标签 mysql sql date select

有一张表:


+---------+--------+---------------------+----------+
| user_id | marker | date                | trans_id |
+---------+--------+---------------------+----------+
|       6 | M      | 2013-08-27 11:45:24 |        5 |
|       6 | MA     | 2013-08-27 11:45:42 |        6 |
|       6 | A      | 2013-08-27 11:45:59 |        7 |
+---------+--------+---------------------+----------+
我测试了查询:
SELECT marker , MAX(date) AS maxdate 从我的表 其中 user_id =6
但这是不合适的。 你将如何编写查询? 提前致谢。

最佳答案

这将为您提供每个 user_id 的最新记录

SELECT  a.*
FROM    tableName a
        INNER JOIN
        (
            SELECT  user_id , MAX(date) date
            FROM    tableName
            GROUP   BY user_ID
        ) b ON a.user_id = b.user_id AND
                a.date = b.date
-- WHERE    a.user_id = 6         ==> if you want for specific user_id only

关于mysql - 如何通过 MAX(date) 检索行数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18460173/

相关文章:

mysql - 让触发器更新我想要的行

mysql - 连接到mysql..主机错误更改?

php - UTF-8贯穿始终

Mysql触发器约束检查

php - 如何在SQL或PHP中将decimal(16,4)转换为DATE或DATETIME

sql - 自增复合主键

java - 使用Java从Map中的MySQL表中检索百万条记录

java - 三级嵌套循环查询不会运行外循环

mysql - MySQL 中的日期时间转换

java - 使用截断的时区信息解析 Java 日期