【发布时间】:2012-06-30 13:32:02
【问题描述】:
嗯,我有两张表 community 和 community_cmets。 community 是存储主题标题和主题的其他详细信息的表。 community_details 是存储主题/线程的所有帖子或 cmets 的表。
我需要根据线程的 cmets 日期以及原始主题/线程的日期提取最新的五个主题。
现在可能有一些线程还没有任何 cmets,但比一些确实有 cmets 的线程更新。我需要正确地把它们拉起来。
我尝试了诸如
之类的查询SELECT MAX(community_comments.id), `community`.*
FROM (`community`)
LEFT JOIN `community_comments` ON `community`.`id`=`community_comments`.`community_id`
WHERE `community`.`type` = 1
GROUP BY `community_comments`.`id`
ORDER BY `community_comments`.`date_posted` DESC
LIMIT 5
这多次拉起同一个线程,而这
SELECT MAX(community_comments.id), `community`.*
FROM (`community`)
LEFT JOIN `community_comments` ON `community`.`id`=`community_comments`.`community_id`
WHERE `community`.`type` = 1
GROUP BY `community_comments`.`community_id`
ORDER BY `community_comments`.`date_posted` DESC
LIMIT 5
提取独特的线程,但不提取正确的最新线程。
社区的表结构是:
CREATE TABLE `community` (
`id` varchar(12) character set utf8 NOT NULL,
`title` varchar(255) character set utf8 NOT NULL,
`content` text character set utf8 NOT NULL,
`author` varchar(13) character set utf8 NOT NULL,
`category` int(10) unsigned NOT NULL,
`type` tinyint(1) unsigned NOT NULL default '1' COMMENT '1 = Forum; 2 = Site Help; 3 = Local & Global',
`location` varchar(100) character set utf8 NOT NULL,
`country` int(10) unsigned NOT NULL,
`date_posted` datetime NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
community_cmets 的表结构是:
CREATE TABLE `community_comments` (
`id` varchar(12) character set utf8 NOT NULL,
`community_id` varchar(12) character set utf8 NOT NULL,
`content` text character set utf8 NOT NULL,
`member_id` varchar(13) character set utf8 NOT NULL,
`type` tinyint(1) unsigned NOT NULL default '1' COMMENT '1 = Forum; 2 = Site Help; 3 = Local & Global',
`quoted` varchar(12) character set utf8 NOT NULL COMMENT 'Id number of the comment that is being quoted',
`date_posted` datetime NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
任何帮助将不胜感激。谢谢。
【问题讨论】:
-
在您的第一个查询中,您不想按社区 ID 而非社区评论 ID 进行分组吗?
-
@MrSlayer 是的,我也试过了,但结果不准确