以下に、ユーザーが質問から用語を入力し、その用語を含む質問を出力するクエリがあります。これにより、回答の質問、オプションタイプ、応答タイプなどに関連付けられて表示されます。
以下はクエリです:
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テーブルを使用して、前の質問を検索できるようにします。したがって、上記のクエリを変更する必要があります。最大の問題は、このテーブルが他のテーブルにリンクされていないことです。つまり、正しい回答、応答タイプ、オプションタイプなどをどのように取得できるのでしょうか。これが私の問題です。
何か助けはありますか?
編集:
以下は他の表です:
質問表
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"を含む対応するすべての行が削除されます。しかし、対応する答えもそうだと気づきました。
以前の質問とその詳細(回答、返信タイプ、オプションタイプ)などを保存する場所を設定して、セッションが削除されたために質問と回答が削除されても、教師が何らかの方法でできるようにする必要があります。教師がそれらの質問とそれに関連する回答、オプションタイプ、返信タイプなどを選択できるように、どこかに保存されている質問を選択します。