2015-10-05 70 views
3

我正在讨论论坛网站上工作。当您打开论坛时,web服务会提取所有活动帖子。要获取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_datecomments

+1

你可以使用ORDER BY'comments'.'comment_id' DESC – Suyog

回答

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

+0

Thanks Ollie !!! – eNeMetcH