我正在尝试从数据库中提取当前用户发送给/从另一个用户接收的每条最后一条消息的列表,例如 facebook 当前消息框(包含“对话”列表)
示例数据:
msg_id sender_id target_id date_sent content ...
1 2 4 20 bla ...
2 2 5 21 bla ...
3 2 6 22 bla ...
4 4 2 25 bla ...
5 5 6 26 bla ...
6 4 2 50 bla ...
如果当前用户是 2,那么我只想获取 2 与其他任何人(发送或接收)的最后一条消息
希望的数据是:
msg_id sender_id target_id date_sent content ...
6 4 2 50 bla ...
2 2 5 21 bla ...
3 2 6 22 bla ...
msg_id 6 存在是因为在所有消息 2 和 4 中(无论谁是发送者/接收者)它的日期最长 (50) msg_id 2 和 3 存在是因为这是与用户 5 和6(每人一个消息,已发送)
找不到解决方法,应该在一些包含发送者和接收者 ID 的唯一生成字段上包含一个 group_by 吗?不知道,请帮忙
更新:
我喜欢这些想法,最终我用另一个新字段创建了该表的视图,其中包含两个 Id 的串联,按顺序(先大),用下划线分隔。这样,该字段对于每个对话都是唯一的。然后按它分组:)