数据库表结构:
会话表(又名考试表)

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

选项表:
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

所需输出:

最佳答案

SELECT * FROM
Question q INNER JOIN Answer a ON q.QuestionID = a.QuestionID
INNER JOIN Option_Table ot ON ot.optionID = q.optionID
INNER JOIN session s ON s.sessionid = q.sessionid

关于mysql - 在查询中联接表时遇到麻烦,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14244097/

10-11 07:54