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