我正在聊天,我想选择用户已发送或接收的用户消息列表,例如fb或twitter。我已经试过这个查询

SELECT DISTINCT * FROM message WHERE `userFrom` = 2 OR `userTo` = 2


但它返回了这张照片中的内容

下图是解释我的问题的图像

php - 如何不在两个不同的列中重复值-LMLPHP

所以我想返回这些用户之间的最后一个动作,如下所示

最佳答案

这将在相同的关系上选择fromuser和touser。

选择不同的最小(a.fromuser,b.fromuser),
最大(a.touser,b.touser)
从tbl a加入tbl b
在a.fromuser = b.touser上
和a.touser = b.fromuser;

请参见下面的演示:

http://sqlfiddle.com/#!9/cedc63/1

08-06 18:42