2

データベースから最後のメッセージを取得し、ユーザーごとにグループ化しようとしています

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

問題があります.. dの代わりにeであり、aの代わりにcであるはずです

4

1 に答える 1

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 デモ リンク

于 2013-01-23T14:37:46.247 に答える