【发布时间】:2012-07-18 20:43:09
【问题描述】:
我们有一个表格(调查),其中包含不同的调查问题。每个survey_id 在此表中仅出现一次。
我们有一个投票表 (vote_survey_table),其中记录了用户对每个调查问题的投票。该表包含有survey_id、vote_yes、vote_no、user_id 等字段。该表对于每个survey_id 都有多个条目。
我正在尝试查询投票表以将给定调查问题的所有投票加起来,但我提出的查询仅将投票表中的行的第一个实例加起来。
SELECT survey.survey_id, vote_survey_table.vote_yes AS cnt,
survey.survey_name, survey.survey_details
FROM survey
LEFT JOIN vote_survey_table AS votedb ON vote_survey_table.vote_survey_id = survey.survey_id
GROUP BY survey.survey_id
ORDER BY cnt DESC, survey.survey_id LIMIT 0,5
我在这个查询中遗漏了什么,应该告诉查询将投票表中的所有调查 ID 实例相加并总结结果?我尝试将 LEFT JOIN 更改为 INNER JOIN,但这也没有成功。
一如既往地提前致谢。
【问题讨论】:
-
一方面,您没有在任何地方使用
SUM或COUNT。那么您希望聚合如何发生? -
分组不会自动累加。使用计数(是)
-
字段
vote_yes和vote_not是布尔字段吗?