0

我正在开发一个使用 MySQL 的即时消息系统。当前的表结构如下所示:

id
from_user_id (FK)
to_user_id (FK)
text
date
new

不过我有一些问题。

首先,我这样做:

SELECT * FROM table WHERE to_user_id = (my_id) ORDER BY date desc GROUP BY from_user_id

这将返回所有向我发送消息的用户。

其次,我将他们的 ID 保存到一个数组中。

第三,我这样做:

SELECT * FROM table WHERE from_user_id = (my_id) AND to_user_id NOT IN (array_of_ids) ORDER BY date desc GROUP BY to_user_id

这将返回我已向其发送消息但未向其发送消息的所有用户。

这很好用。

用户发送的每条消息都有一个字段“新”设置为真。这是因为我想通知其他用户(消息的接收者)他收到了一条新消息。

问题是它也显示为发件人的新消息。

关于如何解决这个问题或将这两个 SQL 更改为一个大 SQL 的任何想法?

4

0 回答 0