我需要获取登录用户和他曾经聊天过的任何用户之间的最后一条消息,就像 facebook 一样。这将类似于 facebook.com/messages 页面。这是我到目前为止所做的
数据库
user_table
- cwid
- first_name
- last_name
- user_image_link
message
- id
- cwid1 (sender id)
- cwid2 (receiver id)
- message (消息内容)
- messagetime (timestamp)
- userread (enum 'Y' 'N')`
登录用户的查询 具有 id =1
SELECT
user_table.cwid,
message.cwid1,
message.cwid2,
message.message,
message.userread,
MAX(message.messagetime),
user_table.first_name,
user_table.last_name,
user_table.user_image_link
FROM message
INNER JOIN user_table
ON message.cwid1 = user_table.cwid
WHERE (cwid2="1")
GROUP BY cwid1
ORDER BY messagetime DESC
这将返回用户从所有向他发送消息的人那里收到的最后一条消息。我还需要类似地获取该用户发送的所有消息,可以通过
SELECT
user_table.cwid,
message.cwid1,
message.cwid2,
message.message,
message.userread,
MAX(message.messagetime),
user_table.first_name,
user_table.last_name,
user_table.user_image_link
FROM message
INNER JOIN user_table
ON message.cwid1 = user_table.cwid
WHERE (cwid1="1")
GROUP BY cwid2
ORDER BY messagetime DESC
我需要它们与不同的用户混合并按消息时间排序,就像 Facebook 消息一样。我是 MySql 的新手,非常感谢任何帮助。谢谢!