Mysql Помагите дорабоать запрос

chrome123

Новичок
Помогите доработать
PHP:
mysql_query("SELECT u.id, mes.text  FROM users AS u, messages AS mes
WHERE (mes.recipient=u.id && mes.sender=5) || (mes.recipient=5 && mes.sender=u.id)
group by if(mes.sender=5,mes.recipient,mes.sender)
order by mes.datenew desc");

Данный запрос по идеи должен выводить последнее сообщение пользователя 5 с каким либо другим пользователем. Что он собственно и делает на половину. Но выводит список всех пользователей с которыми пользователь 5 вел общение. Но заместо последнего сообщения он выводит первое. И сама сортировка от последнего к первому выполняется неверно.

Она выполняется верно если сделать так.


PHP:
order by max(mes.datenew) desc
Но я не уверен что это решение является правильным.
 

chrome123

Новичок
Я понял свою ошибку. После того как привел запрос к такому виду.

PHP:
SELECT mes.id AS mesid FROM  messages AS mes group by if(mes.sender=$CURUSER,mes.recipient,mes.sender) order by mes.id desc
Здесь отчетливо видно что сперва запрос группируется, а лишь потом сортируется по ID. Подскажите пожалуйста как сперва сделать сортировку, а лишь потом группировку ?
 

AnrDaemon

Продвинутый новичок
Прочтите документацию, прежде чем задавать такие вопросы.
 
Сверху