以下查询为我返回了奇怪的结果:
SELECT
`Statistics`.`StatisticID`,
COUNT(`Votes`.`StatisticID`) AS `Score`,
COUNT(`Views`.`StatisticID`) AS `Views`,
COUNT(`Comments`.`StatisticID`) AS `Comments`
FROM `Statistics`
LEFT JOIN `Votes` ON `Votes`.`StatisticID` = `Statistics`.`StatisticID`
LEFT JOIN `Views` ON `Views`.`StatisticID` = `Statistics`.`StatisticID`
LEFT JOIN `Comments` ON `Comments`.`StatisticID` = `Statistics`.`StatisticID`
GROUP BY `Statistics`.`StatisticID`
LIMIT 0, 10
我在如下表结构上查询这个:
(仅与 相关的数据Statistics.StatisticID = 8
)
投票
StatisticID
8
意见
StatisticID
8
8
评论
StatisticID
8
8
8
8
8
现在,如果我运行此查询,我会得到以下结果集:
StatisticID Score Views Comments
8 5 5 5
我知道 5 来自哪里——评论的数量——如果我把评论声明拿出来,这很有效。任何人都可以调试它,因为这超出了我的能力范围(我对 SQL 比较陌生)。
谢谢,罗斯