SQL获取帖子的最新评论日期 - 讨论论坛

时间:2015-10-05 10:54:45

标签: php mysql codeigniter datetime aggregate-functions

我正在讨论论坛网站。当您打开论坛时,Web服务会获取所有活动帖子。

标题,评论数,最近活动(最新评论日期),发布者,状态。

除了Recent Activity之外,我能够获得以上所有数据。

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

1 个答案:

答案 0 :(得分:1)

使用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