我有這個疑問,例如(好,它的工作原理我多麼希望它)如何加入兩個表不會弄亂查詢
SELECT `discusComments`.`memberID`, COUNT(`discusComments`.`memberID`) AS postcount
FROM `discusComments`
GROUP BY `discusComments`.`memberID` ORDER BY postcount DESC
實例結果:
memberid postcount
3 283
6 230
9 198
現在我想加入到discudsComments表的memberid與discusTopic表的成員id(因爲我真正想要做的只是從特定的GROUP獲得我的結果,並且組id只在主題表中而不在註釋中,因此加入。
個SELECT `discusComments`.`memberID`, COUNT(`discusComments`.`memberID`) AS postcount
FROM `discusComments`
LEFT JOIN `discusTopics` ON `discusComments`.`memberID` = `discusTopics`.`memberID`
GROUP BY `discusComments`.`memberID` ORDER BY postcount DESC
實例結果:
memberid postcount
3 14789
6 8678
9 6987
我怎樣才能阻止這種巨大的增長髮生在postcount?我需要像以前一樣保存它。
一旦我有這個整理我想有某種行它說WHERE discusTopics.groupID = 6
,例如
CREATE TABLE IF NOT EXISTS `discusComments` (
`id` bigint(255) NOT NULL auto_increment,
`topicID` bigint(255) NOT NULL,
`comment` text NOT NULL,
`timeStamp` bigint(12) NOT NULL,
`memberID` bigint(255) NOT NULL,
`thumbsUp` int(15) NOT NULL default '0',
`thumbsDown` int(15) NOT NULL default '0',
`status` int(1) NOT NULL default '1',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=7190 ;
。
CREATE TABLE IF NOT EXISTS `discusTopics` (
`id` bigint(255) NOT NULL auto_increment,
`groupID` bigint(255) NOT NULL,
`memberID` bigint(255) NOT NULL,
`name` varchar(255) NOT NULL,
`views` bigint(255) NOT NULL default '0',
`lastUpdated` bigint(10) NOT NULL,
PRIMARY KEY (`id`),
KEY `groupID` (`groupID`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=913 ;
表'discusComments'和'discusTopics'是否以'MemberID'之外的任何方式相互關聯?也許你使用的連接條件是錯誤的(或不完整)。 –
你需要更多地解釋表格及其關係。我很清楚,每個'memberID'在'discusTopics'表中都有很多記錄。但爲什麼,那張桌子是什麼意思?它是什麼外鍵和獨特的限制。你提到該表有一個「groupID」字段。 'memberID,groupID'是唯一的嗎?如果是這樣,請在您選擇的「GROUP BY」中包含'groupID'並查看您得到的結果。 – MatBailie
我剛剛添加了結構 – Jake