用户MySQL / PHP分组记录

时间:2013-01-23 14:36:02

标签: mysql sql greatest-n-per-group

我正在尝试从数据库中获取最后的消息并按用户对其进行分组

http://i.stack.imgur.com/Wjzin4.png

$query = $this->query("SELECT * FROM `messages` 
WHERE `receiver` = '763' 
GROUP BY `sender` 
ORDER BY `id` DESC 
LIMIT 0, 50");

输出:

http://i.stack.imgur.com/GLhyan.png

所以有问题..应该 e 而不是 d c 而不是 a < / p>

1 个答案:

答案 0 :(得分:3)

SELECT  a.*
FROM    messages a
        INNER JOIN
        (
            SELECT  sender, MAX(ID) MAX_ID
            FROM    messages
            GROUP   BY sender
        ) b ON a.sender = b.sender AND
                a.id = b.MAX_ID
// WHERE clause...
// ORDER BY ....
// LIMIT  .....

SQLFiddle Demo Link