繁体   English   中英

Cometchat,按发送日期顺序排序

[英]Cometchat, order by sent date desc

美好的一天,

我希望在最后发送日期(例如: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使从特定成员发送或到特定成员的消息保持在一起。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM