Cometchat, заказ по дате отправки

Добрый день,

Я хочу заказать комет-чаты по дате последней отправки (например, 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 

Который взят из официальной админ-панели кометчата, я правильно отображаю информацию, о которой идет речь (однако она неорганизована. Она организуется по последнему идентификатору участника из таблицы членов. Вместо этого из кометы.) Это пример: 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 

Он выводит "отправленные" времена из кометча, но также разгруппирует все отправленные сообщения (так что это как страница за страницей, а не групповые сообщения). Доказательство: http://i.imgur.com/dtJegw0.png

Итак, какие шаги я должен предпринять, чтобы сделать так, чтобы он точно отображал обе таблицы в сгруппированном формате по времени последней отправки?

Это структура таблицы Cometchat: i.imgur.com/s2Nf8xd.png

Это структура таблицы участников: i.imgur.com/mcq2Pyp.png

1 ответ

Вот 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 хранит сообщения, отправленные от или к определенному участнику вместе.

Другие вопросы по тегам