LINUX.ORG.RU

Запрос sql

 


0

1

Есть таблица messages id, owner, author, message, chat_id, message_date

вопрос: как вывести последнее сообщение для каждого chat_id?

по логике как то так :

SELECT MAX(message_date), id, owner, author, message, chat_id FROM messages WHERE owner = ? GROUP BY chat_id
но почему то не получается


Ответ на: комментарий от kote

Я нагуглил это по косвенным ссылкам, где было написано, что это самый оптимальный вариант. Не претендую на понимание механизмов, но если тебе важно, как оно по производительности, то можно посмотреть дальше.

cdshines ★★★★★
()
Ответ на: комментарий от kote

Точнее так: мой план

Using where; Using join buffer (Block Nested Loop)

Твой план:

Using where; Using temporary; Using filesort

Что оптимальнее - пусть выскажутся местные эксперты.

cdshines ★★★★★
()
Последнее исправление: cdshines (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.