0

这是我的消息数据库 在此处输入图像描述

我想按receiver_id 分组,这是我的SQL

SELECT * FROM messages WHERE sender_id=2
ORDER BY created_at DESC 
GROUP BY receiver_id 
HAVING COUNT(receiver_id)>=1

它正在工作,但它总是显示主题Bokcreated_at=2013-08-19 20:49:22 我想显示最新的 created_at 和主题,在这个例子中2013-08-20 14:29:41

这是我的输出

在此处输入图像描述

4

2 回答 2

0
SELECT 
         m1.* 
FROM 
         messages m1 
LEFT JOIN 
         messages m2
ON 
    (m1.receiver_id = m2.receiver_id 
     AND m1.created_at < m2.created_at)
WHERE 
    m2.created_id IS NULL;
于 2013-08-20T13:20:23.167 回答
0

Groupwise 最大值帮助了我http://dev.mysql.com/doc/refman/5.0/en/example-maximum-column-group-row.html 所以我的查询看起来像

...WHERE created_at=(SELECT MAX(created_at) as created_at FROM mg_messages t2 WHERE t.receiver_id=t2.receiver_id)...

于 2013-08-20T13:42:05.430 回答