0

我正在创建一个连接到 MySQL 数据库的 winforms 调查应用程序。现在我想展示一个问题的替代方案,以及每个问题有多少人回答。我有一个称为替代方案tblAlt的表格和一个来自用户的答案表格,称为tblAnswers.

每个问题只有 5 个选项。有没有办法获得每个备选方案,有多少人用一个查询回答了每个备选方案?

这是我到目前为止所做的,但这绝对是错误的:

SELECT tblAlt.altText, Count(tblAnswers.answerID) 
 FROM tblAlt, tblAnswers 
WHERE tblAlt.questionID = " & CInt(questionID) & " 
  AND tblAnswers.altID = tblAlt.altID

涉及的表格有:

_______________     _______________     ___________  _______________
|_tblUsers____|     |_tblAnswers___|    |_tblAlt__|  |_tblQuestion_|
| userID      |     | answerAltID  |    | altID   |  | questID     |
| username    |     | userID       |    | altText |  | questText   |
|_____________|     |______________|    |_questID_|  |_____________|

任何帮助,将不胜感激!

4

2 回答 2

2

我无法理解您的架构,希望这会有所帮助:

SELECT
    tblAlt.altText,
    Count(tblAnswers.answerID)
FROM tblAlt
LEFT JOIN tblAnswers ON (tblAlt.altId = tblAnswers.altID)
WHERE tblAlt.questionID = " & CInt(questionID) & "
GROUP BY tblAlt.altText;
于 2012-05-06T14:46:04.330 回答
1

我想帮忙,但我需要澄清一下。tblAlt 是唯一的问题表吗?或者,它是其他问题表的替代问题表吗?一定是缺少问题表,否则 questID 没有任何意义,对吧?此外, tblAnswers 包含指向用户的链接,但不包含回答了哪个问题(或备选方案)。因此,无论是否有另一个表,tblAnswers 可能至少应该有一个用于 altID 或 questID 的字段,这样才能正常工作。

于 2012-05-06T14:36:55.747 回答