Я работаю над сайтом дискуссионного форума. Когда вы открываете форум, веб-сервис извлекает все активные сообщения.
Название, Количество комментариев, Недавние действия (Дата последнего комментария), Опубликовано, Статус.
Я могу получить все вышеперечисленные данные, кроме Недавних действий.
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
Таблица
использование 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
Других решений пока нет …