0

MySQL データベースに接続されている winforms で調査アプリケーションを作成しています。ここで、質問の選択肢と、各質問に何人が回答したかを示したいと思います。と呼ばれる代替案の表とtblAltと呼ばれるユーザーからの回答の表がありますtblAnswers

各問題の選択肢は 5 つだけです。それぞれの選択肢を取得する方法はありますか? また、1 つのクエリでそれぞれに何人が回答しましたか?

これは私がこれまでに作成したものですが、これは間違いなく間違っています:

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 に答える