从两个或多个表中检索数据

时间:2012-05-06 14:04:48

标签: mysql vb.net winforms

我正在连接到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_|  |_____________|

任何帮助将不胜感激!

2 个答案:

答案 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字段,以便它可以工作。