我为用户创建了一个消息系统,允许用户向另一个人发送消息。
为此,我创建了两个表。
conversation(conversation_id,user_id1,user_id2)
messages(message_id,conversation_id,sender_id,receiver_id,message,created_time)
如果用户是第一次交谈,将使用 user_id1(发起聊天的人)和 user_id2(向 user_id1 正在发送消息的人)创建一个 conversation_id
消息表将包含与消息相关的所有信息。
现在我想要的是,创建一个消息摘要页面,其中登录用户可以查看他在其他用户之间的所有对话列表,按created_time排序,按conversation_id分组。
以下是表格数据:
conversation_id | user_id1 | user_id2
1 100 103
2 101 103
3 103 102
message_id| conversation_id| sender_id| receiver_id| message | created_time
1 1 100 103 MSG A 2012-06-08 08:38:57
2 1 103 100 MSG B 2012-06-08 08:39:40
3 2 101 103 MSG C 2012-06-08 08:40:20
4 3 102 103 MSG D 2012-06-08 08:41:10
这是我正在寻找的输出:假设登录用户的 ID 为:103
conversation_id| conversation_with | last_message | created_time
3 102 MSG D 2012-06-08 08:41:10
2 101 MSG C 2012-06-08 08:40:20
1 100 MSG B 2012-06-08 08:39:40
因此,此输出按 created_time 排序,按 conversation_id 分组并在 conversation_with 中显示用户的 id,用户 ID 103 正在与谁进行对话。
有人可以提供 MySQL 查询吗?我需要得到这个输出。