正しい GROUP BY 句を含めて、SELECT 句で正しいテーブルからフィールドを選択しているかどうかわからないクエリで助けが必要です。
以下はデータベーステーブルです:
セッションテーブル
SessionId SessionName
1 AAA
2 AAB
質問表
SessionId QuestionId QuestionContent QuestionMarks
1 1 What is 2+2? 2
1 2 What is 4+4? 3
2 1 What is 10+10 and 11+11? 5
2 2 What is 15+15? 5
2 3 What is 20+20 and 40+40? 7
回答表
AnswerId SessionId QuestionId Answer
1 1 1 B
2 1 2 C
3 2 1 A
4 2 1 D
5 2 2 A
6 2 3 D
7 2 3 E
以下はクエリです。
$query = "SELECT q.SessionId, s.SessionName, q.QuestionId, q.QuestionContent, GROUP_CONCAT(DISTINCT Answer SEPARATOR '') AS Answer, q.QuestionMarks
FROM Session s
INNER JOIN Question q ON s.SessionId = q.SessionId
JOIN Answer an ON q.QuestionId = an.QuestionId
WHERE SessionName = "AAB"
GROUP BY an.SessionId, an.QuestionId
";
セッション「AAB」に属する各質問を表示したい。したがって、以下のように QuestionId、QuestionContent、Answer、および QuestionMarks が表示されます。
QuestionId QuestionContent Answer QuestionMarks
1 What is 10+10 and 11+11? AD 5
2 What is 15+15 A 5
3 What is 20 + 20 and 40+40? DE 7
現在、セッション「AAB」で「Lets Say Questions」を検索している場合、以下に表示されています。
QuestionId QuestionContent Answer QuestionMarks
1 What is 10+10 and 11+11? AD 5
2 What is 15+15 A 5
3 What is 20 + 20 and 40+40? DE 7
1 What is 10+10 and 11+11? AD 5
2 What is 15+15 A 5
3 What is 20 + 20 and 40+40? DE 7
1 What is 10+10 and 11+11? AD 5
2 What is 15+15 A 5
3 What is 20 + 20 and 40+40? DE 7
1 What is 10+10 and 11+11? AD 5
2 What is 15+15 A 5
3 What is 20 + 20 and 40+40? DE 7
1 What is 10+10 and 11+11? AD 5
2 What is 15+15 A 5
3 What is 20 + 20 and 40+40? DE 7