我正在编写一个用于用户通信的消息系统。在收件箱中,我不想向用户显示他/她收到的消息。我只是想展示对话。例如,如果一个用户发送或接收多条消息,那么在收件箱中应该只有与用户的对话(包括最新的消息,无论是书面的还是接收的),当用户点击对话时,他/她可以看到所有过去的消息。
'messages' 的表结构(简化)如下:
message_id
user_id_sender
user_id_recipient
message
现在的问题是消息保存在数据库中,其中每一行都是一条消息,所以我必须以某种方式对这些消息进行分组。
我想出的选择语句如下:
SELECT * FROM messages
WHERE user_id_sender = 1 OR user_id_recipient = 1
GROUP BY user_id_sender
但是现在我显然收到了两条消息,因为一条是用户“1”写的,一条是他收到的。
有人知道如何解决这个问题吗?