相同的ID,但只获得1个结果

时间:2015-12-10 19:19:30

标签: php mysqli

我即将制作一个消息系统。我不想制作像conversationsmessages这样的2个表格,而只想拥有messages。然后会有很多具有相同用户ID的行:

id     to_id     from_id     message
1      1         2           text...
2      1         3           text...
3      2         1           text...
4      1         2           text...
5      1         2           text...
6      1         2           text...

问题是,我希望得到每个对话中的一个。如果id 1写入id 2,那么那就是1个会话,但是如果id 2将回复写入id 1,那么它仍然只是1个会话。

在上面的示例中,只有2个会话(id 1到id 3)和(id 1到id 2和reverse)。

我怎样才能实现这一目标。我的想法是必须有一些比DISTINCT更简单的东西。

2 个答案:

答案 0 :(得分:1)

我可能会找一张相关的表,但要保持简单,只需添加conv_id列。

创建消息时,创建一个新的conv_id并将其与其他数据一起添加到表行。当回复消息时,只使用conv_id作为新行。

如果您想要检索对话,请选择WHERE conv_id=x和/或使用GROUP BY conv_id

答案 1 :(得分:0)

为什么不使用group by来加入对话:

select * from table where to_id = 1 group by from_id