Я пытаюсь работать со следующими таблицами: ответы пользователей (id, name) (id, name, slug) на сообщения (id, title, content, topicid, authorid, datetime, slug) ответы (id, authorid, threadid), content, datetime)
Я хочу создать список сообщений, упорядоченных по последнему ответу (или дате публикации, если ответов нет).Каждый список должен содержать: заголовок сообщения, количество ответов, дату публикации, дату последнего ответа, имя автора, имя человека, который ответил в последний раз и т. Д.
Я могу получить все, кроме даты и автора последнего ответа.Дату можно сделать через MAX (replies.datetime), но я не знаю, как получить последнего автора.
Моя последняя попытка была использовать исключающее соединение:
select posts.id, posts.title, posts.authorid, posts.topicid, posts.content, posts.datetime, count(replies.id) as replies, r2.datetime, replies.datetime, GREATEST(posts.datetime, coalesce(max(replies.datetime), posts.datetime)) as latesttime, users.name as author, commenters.name as commenter, r2.id
from posts
left join replies on replies.threadid = posts.id
left join users on users.id = posts.authorid
left join users commenters on commenters.id = replies.authorid
left join replies as r2 on replies.id = r2.id and replies.datetime < r2.datetime
where r2.id is null
group by posts.id
order by latesttime DESC, replies.datetime DESC
limit 20;
К сожалению, это все еще не получит последний комментарий автора.Есть идеи?