DB テーブル構造:
セッション テーブル (別名試験テーブル)
SessionId(auto) SessionName
137 XULWQ
質問表:
SessionId QuestionId QuestionContent QuestionNo QuestionMarks OptionId
137 1 Name 2 Things 1 5 5
137 2 Name 3 Things 2 5 2
Option_Table テーブル:
OptionId OptionType
1 A-C
2 A-D
3 A-E
4 A-F
5 A-G
6 A-H
回答表:
AnswerId(auto) SessionId QuestionId Answer
200 137 1 B
201 137 1 F
202 137 2 D
203 137 2 A
204 137 2 C
以下のクエリのコンパイルに問題があります。クエリの下にある次のフィールドを選択したいのですが、結合に問題があります。最後の結合を見ると、テーブルから取得しようとしてOptionID
いますが、そのフィールドを持たないテーブルをOption_Table
通過する必要があります。Answer
私の問題は、質問テーブルとの結合に実際に依存する3つのフィールドがあることです。
私の質問は、選択したいフィールドを含む各質問の回答が表示されるように、以下のテーブルを結合する正しい方法は何ですか?
SELECT q.SessionId, s.SessionName, q.QuestionId, q.QuestionNo, q.QuestionContent, an.Answer, an.AnswerId, q.QuestionMarks, q.OptionId, o.OptionType
FROM Session s
INNER JOIN Question q ON s.SessionId = q.SessionId
JOIN Answer an ON q.QuestionId = an.QuestionId
JOIN Option_Table o ON an.OptionId = o.OptionId
WHERE s.SessionName = ?
ORDER BY q.QuestionId, an.Answer
必要な出力: