【发布时间】:2009-07-29 10:33:03
【问题描述】:
我正在尝试使用 php 和 sql 创建一个简单的轮询函数。 我有三张桌子:
问题
其中仅包含所问的每个问题
question_id |问题文本 | created_at
答案
其中包含每个问题的每个答案
question_id | answer_id | answer_text
已回答的问题
哪些记录谁为每个选项投票
question_id | answer_id |用户ip
我正在尝试编写一个查询,该查询将返回一个问题(最新的)以及该问题的所有可能答案,最后计算每个问题的每个答案的计数。我知道我将不得不使用 GROUP BY 子句和可能的 LEFT OUTER JOIN,但确切的语法让我无法理解。
任何建议将不胜感激。谢谢。
【问题讨论】:
-
为什么要在第三个表中保留
question_id?question_id由answer_id定义。 -
@Quassnoi:除非他的主键是复合的(question_id,answer_id)。
-
@Hosam Aly:你认为一个答案可以应用于多个问题?
-
@Quassnoi:不,但他可能已将主键配置为复合,分别计算每个问题的答案 ID。 (例如 Q1 有答案 A1、A2 和 A3;Q2 有答案 A1 和 A2。)