さて、私は2つのテーブルcommunityとcommunity_commentsを持っています。コミュニティは、トピックのタイトルやその他のトピックの詳細が保存されているテーブルです。community_detailsは、トピック/スレッドのすべての投稿またはコメントが保存されているテーブルです。
スレッドのコメントの日付と元のトピック/スレッドの日付に基づいて、最新の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`.`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_commentsのテーブル構造は次のとおりです。
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;
どんな助けでも大歓迎です。ありがとう。