mysql左连接,由同一用户分组并显示最后结果

时间:2014-01-01 11:14:30

标签: php mysql group-by left-join

基本上我想创建一个列表,显示每个用户的最后一条消息

我尝试过这个问题:

SELECT * FROM messages 
LEFT JOIN users ON message_by = user_mail
WHERE message_by = 'currect user' 
OR message_to = 'currect user' 
AND message_time IN (
    SELECT max(message_time) 
    FROM messages 
    GROUP BY message_token
)
GROUP BY message_token 
ORDER BY message_token DESC
对于两个用户之间的消息,

* message_token是相同的

我得到的结果没有显示最后的结果,我哪里出错?

1 个答案:

答案 0 :(得分:0)

好的,这是今年的第一次:

SELECT
    x.*
FROM
    my_table x
JOIN
    (
    SELECT
        grouping_id
        ,MAX(ordering_id) max_ordering_id
    FROM
        my_table
    GROUP BY
        grouping_id
    ) y
ON
    y.grouping_id = x.grouping_id
AND
    y.max_ordering_id = x.ordering_id;