我有一个像这样的表:
+---+--------+----------+---------+
|id | sender | receiver | created |
+---+--------+----------+---------+
1 4 9 3333
2 9 4 3334
3 4 9 3335
4 5 4 3336
5 4 9 3337
我的问题是:
SELECT *
FROM chat_messages
WHERE sender = 4 OR receiver = 4
GROUP BY sender, receiver
ORDER BY created DESC
结果如下:
+---+--------+----------+---------+
|id | sender | receiver | created |
+---+--------+----------+---------+
5 4 9 3337
4 5 4 3336
2 9 4 3334
我更接近我所寻找的东西了。我正在寻找这个结果:
+---+--------+----------+---------+
|id | sender | receiver | created |
+---+--------+----------+---------+
5 4 9 3337
4 5 4 3336
意思是如果对话是用户
n
的,则希望得到最新的行,否则希望得到用户 n 是 发送者 或 接收者 的其他行。提前致谢。
n
的所有行,只有对话的最后一个事件。用户4
与9
和5
交谈,我有与9
的最后一个事件和唯一的与5
的事件。 - A. K. M. Tariqul Islam