【发布时间】:2010-09-23 08:23:25
【问题描述】:
以下查询对我来说返回了奇怪的结果:
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 来自哪里 - 评论的数量 - 如果我把 cmets 语句去掉,这将有效。任何人都可以调试它,因为这超出了我的能力范围(我对 SQL 比较陌生)。
谢谢, 罗斯
【问题讨论】:
-
Ross,您能否提供一个更好的表格视图?我不完全确定我正在查看的是 ERD (en.wikipedia.org/wiki/Entity-relationship_model) 还是您存储在表格中的内容。