美好的一天,
我希望按照上次发送日期订购我的聊天聊天(例如: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.imgur.com/s2Nf8xd.png
这是成员表格结构:i.imgur.com/mcq2Pyp.png
答案 0 :(得分: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
将来自特定成员的消息保存在一起。