消息收件箱的SQL

时间:2013-09-12 09:13:07

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

我的用户收到了一个邮件收件箱,我有一个'邮件'表和一个'用户'表。消息表包含tofrom字段,其中包含用户ID。

我想从每个用户中选择最新消息,其中to字段是当前用户ID,即

“从(唯一用户)中选择(最新消息,按Message.ID),其中Message.to = $ currentUserID(并且左连接用户,其中UserID = Message.from)”

我想结束这样的事情:

http://www.innerfence.com/blog/wp-content/uploads/screenshot-iphone-inbox-thumb.png

我无法弄清楚我需要的查询,请帮助..!

1 个答案:

答案 0 :(得分:0)

试试这个。它经过测试并且工作正常。已更新,包含有关发件人的信息。

SELECT * FROM `messages` tm LEFT JOIN `users` tu ON `tm.from` = `tu.userid`
WHERE `tm.date` IN
    (SELECT MAX(`date`) FROM `messages` WHERE `to` = $currentUserID GROUP BY `from`);
相关问题