Как сделать JOIN, чтобы к основной таблице прицепились по 1 записи из другой таблицы, с определенными условиями, от части в плане ORDER?

Пример есть таблица постов и комментариев.
Нужно вывести список постов + по самому последнему комментарию к посту.
Или список постов + по самому рейтинговому комментарию. Посты не должны повторяться в результате.

Рад буду, если получится представить это через CakePHP find, но простой запрос тоже подойдет.
  • Вопрос задан
  • 2527 просмотров
Решения вопроса 1
@exaller Автор вопроса
В общем, всё намного проще, чем казалось...
SELECT MAX(с.created)
FROM comments c
GROUP BY c.post_id

Ну и плюс JOIN post.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
hell0w0rd
@hell0w0rd
Просто разработчик
select * from posts p join comments c on c.post_id = p.id having max(c.date)
Ответ написан
shcherbanich
@shcherbanich
Программист
SELECT * FROM posts JOIN LEFT comments ON comments.post_id = posts.id GROUP BY posts.id ORDER BY comment.date DESC

Может что-то путаю, только проснулся)
Ответ написан
@whats
В твоем случае тебе помогут ROW_NUMBER() и over(ORDER BY xxx) - это будет в подзапросе. Основной запрос выведет первые строки подзапроса.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы