我在MySQL中有一个表:
SID DID MessageType消息的日期
1255日志2010-01-17 15:02:05日志消息1
2 255用户2010-01-17 19:02:05用户消息1
3 211日志2010-01-17 15:06:55日志消息2
4 211管理员2010-01-17 22:06:55管理员消息1
我需要获取最后一条(按日期)消息和消息类型,按DID分组,
按描述日期排序
正确的结果是:
DID消息类型消息的日期
211管理2010-01-17 22:06:55管理消息1
255用户2010-01-17 19:02:05用户消息1
如何进行选择查询?MySQL 5.1版

最佳答案

SELECT * FROM `test` WHERE (DID,DateOf) IN (
    SELECT DID,MAX(DateOf) FROM `test` GROUP BY DID
) GROUP BY DID ORDER BY DateOf  DESC

子查询为每个DID选择最大日期。
外部查询选择具有这些日期和DID的行。
外部查询中的GROUPBY确保每个DID的结果中只有一行(如果表中有多行具有相同的DID和DateOf,则返回其中一行而不带任何特定顺序)。

关于mysql - Mysql GROUP BY和唯一值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2081075/

10-10 09:20