我正在连接到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_| |_____________|
任何帮助将不胜感激!
答案 0 :(得分: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;
答案 1 :(得分:1)
我想提供帮助,但我需要澄清一下。 tblAlt是唯一的问题表吗?或者,它是否是其他问题表的替代问题表?必须有一个缺少的问题表或questID没有任何意义,对吧?此外,tblAnswers包含指向用户的链接,但不包含已回答的问题(或备选方案)。所以,无论如何,如果有另一个表,tblAnswers应该至少有一个altID或questID字段,以便它可以工作。