【问题标题】:Retrieve data from two or more tables从两个或多个表中检索数据
【发布时间】:2023-04-04 23:51:01
【问题描述】:

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

任何帮助将不胜感激!

【问题讨论】:

    标签: mysql vb.net winforms


    【解决方案1】:

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

    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;
    

    【讨论】:

    • 似乎工作得很好!正是我需要的。非常感谢!
    • 也许你应该创建一个新问题并解释你的问题
    【解决方案2】:

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

    【讨论】:

    • tblAlt 是供用户选择的备选表格。这是一项多项选择调查。是的,还有一个问题表。我现在已经更新了我的架构。而我的错误:tblAnswers 有一个链接到用户和替代如你所说。
    猜你喜欢
    • 1970-01-01
    • 2018-10-03
    • 1970-01-01
    • 2019-04-30
    • 2012-12-09
    • 2013-07-23
    • 1970-01-01
    相关资源
    最近更新 更多