0

再会,

我希望按上次发送日期(例如: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 管理面板,我正确显示了相关信息(但是它是无组织的。它通过成员表中的最后一个成员 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

4

1 回答 1

0

以下是我们建议解决此问题的 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来自或发往特定成员的消息保持在一起。

于 2016-04-12T08:00:01.387 回答