我有一个数据库,其中包含一个名为“消息”的表。 colums 是'sender','reseiver','subject','time'(时间戳)。
在我的查询中,我想获取按主题分组的条目。 BUT 我想有相应的时间是最晚的。
例如,如果这是我的数据库:
person1 | person2 | hello | 2019-06-24 20:0**7**:00
person2 | person1 | hello | 2019-06-24 20:0**8**:00
我想得到这个:
subject: hello
last entry: 2019-06-24 20:0**8**:00
我无法将 ORDER BY 放在 GROUP BY 之前,所以我尝试了一个子查询:
SELECT subject, sender, receiver, time
FROM
(SELECT subject, sender, receiver, time
FROM messages
ORDER BY time DESC) AS subselect
GROUP BY subject
但它不起作用,我不明白为什么。
有人可以帮帮我吗?
最佳答案
SELECT subject,sender,reseiver,max(time)
FROM messages
GROUP BY subject,sender,reseiver
ORDER BY max(time) DESC
您还应该按发件人、收件人分组,否则这些列的值不可预测。或者完全忽略这些列。
关于mysql - 这里如何结合 GROUP BY 和 ORDER BY 呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56743232/