This question already has answers here:
MySQL groupwise MAX() returns unexpected results
(3个答案)
三年前关闭。
这是一个mysql表的示例:
    Name | Message     | Time
    -----+-------------+-------------
    John | Hi          | 12/11 7:00PM
    John | Bye         | 12/11 7:05PM
    John | Hello World | 12/11 7:10PM
    Jane | I'm fine    | 12/11 7:15PM
    Jane | How are you | 12/11 7:20PM
    Jane | Hello World | 12/11 7:25PM
    Bob  | Hi          | 12/11 7:30PM
    Bob  | I'm fine    | 12/11 7:35PM
    Bob  | Hello World | 12/11 7:40PM

我的问题是,我将使用什么代码来调用name列中每个人的最新插入?
我要找的例子:
    Name | Message     | Time
    -----+-------------+-------------
    John | Hello World | 12/11 7:10PM
    Jane | Hello World | 12/11 7:25PM
    Bob  | Hello World | 12/11 7:40PM

提前谢谢你。
编辑
时间列被设置为varchar数据类型而不是时间数据类型。

最佳答案

在原始表和查找每个名称的最大次数的查询之间使用一个简单的INNER JOIN,就可以做到这一点:

SELECT t1.Name, t1.Message, t1.Time
FROM your_table t1
INNER JOIN
(
    SELECT Name, MAX(Time) AS MaxTime
    FROM your_table
    GROUP BY Name
) t2
ON t1.Name = t2.Name AND t1.Time = t2.MaxTime

10-07 19:09
查看更多