【发布时间】:2014-07-24 00:38:59
【问题描述】:
我想列出我的数据库中的所有对话对。我有表 message 存储有关消息信息的位置。
我也尝试过此方法,但不适用于我 Link,因为仅指定了不同的选择列。
例如。当$_SESSION['userid'] = 1
表格消息
sender_id sendto_id created(datetime)
1 2
1 2
1 3
1 4
3 1
3 1
2 4
4 2
我的结果享有声誉,介于 1,3 和 3,1 之间。
sender_id sendto_id
1 2
1 3
1 4
3 1
我只是想要这样,让它为每对选择最新添加的字段。
前任。 1-2(1),1-2(2) 和 2-1 如果 2-1 是最新的,则应该是 2-1,如果是最新的,则应该是 1-2(2)。
sender_id sendto_id created(datetime)
2 1 newest of pair 1-2 or 2-1
1 3 newest of pair 1-2 or 2-1
1 4 newest of pair 1-2 or 2-1
还有我的SQL,请帮忙!谢谢。
select m.*,
(select MAX(created)
from message n
where (n.senderid = m.sendtoid AND n.sendtoid = '$userid')
OR (n.senderid = '$userid' AND n.sendtoid = m.sendtoid)) lastsend
from message m
where (m.senderid = '$userid' OR m.sendtoid = '$userid')
group by m.senderid, m.sendtoid
order by lastsend desc
【问题讨论】: