我正在开发一个使用 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 的任何想法?