美好的一天,
我希望在最后发送日期(例如:1天前,3天前,8天前,等等)之前订购我的cometchat聊天室,以进行我正在集成的私人消息传递系统。
但是每次我运行命令:
(select distinct(f.member_id) id, f.display_name username from
cometchat m1, members f where (f.member_id = m1.from and m1.to = '1')
or (f.member_id = m1.to and m1.from = '1')) order by sent desc
这是从官方cometchat管理面板上获取的,我正确地显示了有问题的信息(但是它是无组织的。它是根据members表中的最后一个成员ID进行组织的。而不是cometchat的组织。)这是示例:http://i.imgur.com/ZfqAerr.png
现在,如果我使用以下命令:
(select distinct(f.member_id) id,sent, f.display_name username from
cometchat m1, members f where (f.member_id = m1.from and m1.to = '1')
or (f.member_id = m1.to and m1.from = '1')) order by sent desc
它确实输出来自cometchat的“已发送”时间,但同时也取消了所有已发送消息的分组(因此就像逐页而不是分组消息传递。)证明:http://i.imgur.com/dtJegw0.png
那么我必须采取什么步骤才能使其在上次发送时间之前以分组格式准确显示两个表?
这是Cometchat表的结构:i.imgur.com/s2Nf8xd.png
这是成员表的结构:i.imgur.com/mcq2Pyp.png
最佳答案
这是我们建议解决此问题的SQL:
select
distinct(f.member_id) id,
f.display_name username,
max(sent) senttime
from cometchat m1, members f
where (f.member_id = m1.from and m1.to = '1')
or (f.member_id = m1.to and m1.from = '1')
group by f.member_id
order by sent desc
group_by
将来自特定成员或特定成员的邮件保持在一起。关于php - Cometchat,按发送日期顺序排序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36560905/