我正在尝试重新创建一个像 Whatsapp 这样的对话列表,其中显示与您交谈的人的联系人姓名以及消息发布的时间以及最后一条消息,无论它是来自您还是联系人发布消息的人,换句话说,我需要始终查看联系人姓名、上次发布消息的时间以及我或收件人可能发送的最后一条消息,我还需要带回对方的图像用户表中的用户。
用户表
userid | first_name | url |
---------------------------------------------
101 | name1 | www.image_url1.jpg |
102 | name2 | www.image_url2.jpg |
103 | name3 | www.image_url3.jpg |
104 | name4 | www.image_url4.jpg |
留言表
MessageId | userid | senderid | message | timestamp |
-----------------------------------------------------------
1 | 101 | 102 | message1 | 1234567 |
2 | 102 | 101 | message2 | 1234578 |
3 | 101 | 102 | message3 | 1235679 |
4 | 103 | 101 | message4 | 1256379 |
如果我的 userid = 101 是来自我或联系人的最后一条消息和时间戳以及联系人 userid、first_name 和 url,我尝试从数据库查询什么
userid | first_name | url | message | timestamp |
---------------------------------------------------------------------
102 | name2 | www.image_url2.jpg | message3 | 1235679 |
104 | name4 | www.image_url4.jpg | message4 | 1227878 |
----------------------------------------------------------------------
如何做到这一点?
您必须知道两个用户之间最后发送/接收的消息的ID,这样您才能获取他们之间最新消息的详细信息。您的查询没有表明这一点,这应该在您的
where
子句中。