Я пытаюсь получить список разговоров из базы данных, и мне бы хотелось, чтобы вместе с ними было отображено самое последнее сообщение. У меня возникли проблемы с поиском запроса, который позволяет мне это делать (а это не N + 1).Выберите неагрегатный столбец в группе, на основе соответствующего столбца агрегата
У меня есть эти таблицы:
chats(id, user_id, post_id, created_at)
messages(id, user_id, chat_id, body, created_at)
У меня был запрос, как это в виду:
select chats.id, chats.user_id, m.latest from chats
inner join (
select chat_id, max(created_at) as latest from messages
group by chat_id
) as m on m.chat_id = chats.id;
Но я хочу, чтобы добавить тело сообщения из строки, соответствующей max(created_at)
результата. Возможно ли получить соответствующий столбец?
Это идеальное решение для моего использования, спасибо –