0

我正在尝试制作类似于 facebook 的消息传递系统。我知道如何显示 2 个用户之间的所有消息,但我不知道如何制作

在此处输入图像描述

这是我的数据库

在此处输入图像描述

4

1 回答 1

1

你想要的基本上就是这个,但是如果它开始增长,性能会变得非常糟糕。

SELECT sender_id, receiver_id, body, is_read
FROM table
WHERE deleted_by IS NULL AND receiver_id = x
-- WHERE deleted_by IS NULL AND (sender_id = x OR receiver_id = x)
GROUP BY sender_id, receiver_id
ORDER BY created_at DESC

请注意,这是一个分组,没有显式处理仅在 MySQL 中有效的非分组列。在 PostgreSQL 中,你可以干净地解决这个问题,DISTINCT ON()但这应该对 MySQL 有用。

于 2013-08-20T22:43:09.277 回答