SQL для получения последней даты комментирования для поста — Дискуссионный форум

Я работаю над сайтом дискуссионного форума. Когда вы открываете форум, веб-сервис извлекает все активные сообщения.

Название, Количество комментариев, Недавние действия (Дата последнего комментария), Опубликовано, Статус.

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

SELECT
`post`.`id`,
`post`.`title`,
`post`.`description`,
`post`.`created`,
COUNT(`comment_text`) AS `num_comments`,
`users`.`name`,
`users`.`nick_name`,
`users`.`profile_picture`
FROM `post`
JOIN `users` ON `users`.`id` = `post`.`user_id`
JOIN `posttype` ON `posttype`.`id` = `post`.`post_type_id`
LEFT JOIN `comments` ON `comments`.`post_id` = `post`.`id`
WHERE `post_type` = 'Discussion'
GROUP BY `post`.`id`

Как мне изменить этот SQL, чтобы получить последнюю дату комментария?

comment_date в comments Таблица

3

Решение

использование MAX(comment_date) так же, как вы используете COUNT(comment_text) чтобы получить самую последнюю дату за все комментарии в каждом GROUP BY post.id группа.

Будьте осторожны, вы используете нестандартное расширение MySQL для GROUP BY, В вашем случае расширение может привести к тому, что ваш набор результатов будет содержать информацию из users таблица, которую вы не можете предсказать. Прочитай это. http://dev.mysql.com/doc/refman/5.6/en/group-by-handling.html

1

Другие решения

Других решений пока нет …