日安,
我想按上次发送的日期订购我的彗星聊天(例如:1天前,3天前,8天前等等)对于私有消息传递系统,我正在进行集成。
但是,每次我运行命令时:
(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.imger.com/s2Nf8xd.png
这是成员表结构:i.imger.com/mcq2Pyp.png
发布于 2016-04-12 08:00:01
下面是我们建议解决这个问题的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 descgroup_by将来自或发送给特定成员的消息放在一起。
https://stackoverflow.com/questions/36560905
复制相似问题