Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » MySQL » Как исправить sql запрос?

Как исправить sql запрос?


     22.01.2018    EnePM, sql запрос    Все вопросы » MySQL    974

вопрос
Приветствую, поставил модуль ENE PM , но проблема с sql запросом

$sql_getlastuser = $db->query("SELECT e.from_user_id, e.user_id as uid, u.user_id as userid, u.name, u.fullname, u.foto, u.lastdate FROM " . PREFIX . "_ene_pm as e, " . PREFIX . "_users as u  WHERE (e.from_user_id=u.user_id AND e.user_id='{$member_id[user_id]}') OR (e.user_id=u.user_id AND e.from_user_id='{$member_id[user_id]}') GROUP BY userid ORDER BY `date` DESC LIMIT $select");


Этим запросом он группирует контакты, но к сожалению по дате первого сообщения. Как исправить запрос, чтобы он группировал по дате последнего сообщения?

То есть ситуация, я пообщался с юзером 1. После этого общался еще с десятью. затем юзер 1 написал мне новое сообщение, но в списке переписок он будет 10м, а не первым.

Как исправить sql запрос?


Очень надеюсь на помощь.

Ответил: BAHO


Все просто! Добавьте , max(e.date) maxdate в запрос и группируйте по maxdate

$sql_getlastuser = $db->query("SELECT e.from_user_id, e.user_id as uid, u.user_id as userid, u.name, u.fullname, u.foto, u.lastdate, max(e.date) maxdate FROM " . PREFIX . "_ene_pm as e, " . PREFIX . "_users as u  WHERE (e.from_user_id=u.user_id AND e.user_id='{$member_id[user_id]}') OR (e.user_id=u.user_id AND e.from_user_id='{$member_id[user_id]}') GROUP BY userid ORDER BY maxdate DESC LIMIT $select");

2 комментария

maks
Юзер

maks - 22 января 2018 13:52 -

Desk на asc

freemans
Юзер

freemans - 22 января 2018 16:16 -

это просто развернет список, и станет десятым с конца.
Нужно до группировки как-то это сделать.

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

 28.03.2014 i_loves_ac_dc  MySQL
наверх