我在下面有一个查询,用户将在其中输入一个问题中的一个术语,它将输出包含该术语的问题,并与它一起显示与它的答案、它的选项类型、它的回复类型等相关的问题。
以下是查询:
SELECT DISTINCT q.QuestionContent, o.OptionType, q.NoofAnswers,
GROUP_CONCAT(DISTINCT Answer SEPARATOR '') AS Answer,
r.ReplyType, q.QuestionMarks, q.SessionId
FROM Answer an
JOIN Question q
ON q.QuestionId = an.QuestionId
AND an.SessionId = q.SessionId
JOIN Reply r
ON q.ReplyId = r.ReplyId
JOIN Option_Table o
ON q.OptionId = o.OptionId
WHERE ".implode(" AND ", array_fill(0, $numTerms, "q.QuestionContent LIKE ?"))."
GROUP BY an.SessionId, an.QuestionId
现在我意识到通过使用 CRON,它每年都会删除以前的考试(SessionId),这意味着这些问题不会出现供用户在用户中搜索。
所以我想做的是建立一个表格来存储所有以前的问题,表格如下:
Previous_Question Table:
PreviousId (auto) PreviousContent
1 What is 2+2?
2 What is 4+4 and 3+3?
3 What is square root of 144?
所以我想使用 Previous_Question Table 来搜索以前的问题。所以我需要更改上面的查询虽然最大的问题是该表没有链接到任何其他表,这意味着我将如何能够检索它的正确答案、回复类型、选项类型等?这是我的问题。
有什么帮助吗?
编辑:
以下是其他表格:
问题表
SessionId QuestionId QuestionContent NoofAnswers ReplyId QuestionMarks OptionId
AAA 1 What is 2+2? 1 1 5 2
AAA 2 What is 4+4 and 3+3? 1 2 5 3
ABC 3 What is square root of 144? 1 1 7 5
答案表:
AnswerId(auto) SessionId QuestionId Answer
1 AAA 1 B
2 AAA 2 A
3 AAA 3 D
4 ABC 1 A
回复表:
ReplyId ReplyType
1 Single
2 Multiple
选项表:
OptionId OptionType
1 A-C
2 A-D
3 A-E
4 A-F
5 A-G
现在假设 SessionId "AAA" 被删除,这意味着在 "Question" 表中包含 SessionId 的 "AAA" 的所有相应行都将被删除。但刚刚意识到相应的答案也会如此。
我需要帮助以某种方式设置一些东西,它将存储以前的问题及其详细信息(答案、回复类型、选项类型)等,以便即使问题和答案因为会话已被删除而被删除,老师也可以采取一些方法挑选那些存储在某处的问题,以便教师仍然可以选择这些问题及其相关答案、选项类型、回复类型等。