以下にデータベースのサンプルがあります。
セッション テーブル:
SessionId (PK auto) SessionName
1 SODJW
質問表:
QuestionId (PK auto) QuestionContent SessionId (FK) refer to Session
1 Blah 1
2 Blah Blah 1
3 Blah Blah Blah 1
Penalty_Marks テーブル:
PenaltyAnswerId PenaltyMarks QuestionId (FK) refer to Question
1 1 1
2 0 1
3 1 2
4 2 3
5 2 3
PenaltyMarks
ここで、セッションをカウントする SQL を実行したいと考えています。QuestionId
そのためには、どれが に属しているかを知りSessionId
、マークを数える必要があります。
私の質問は、これの SQL をどのように記述してQuestionId
内のを見つけられるようにしSessionId
て、ペナルティ マークをカウントできるようにするかということです。私がこれを尋ねている理由は、間違ったカウント値を与えているからです。
私の試み:
SELECT COUNT(PenaltyMarks)
FROM Session s
INNER JOIN Question q ON s.SessionId = q.SessionId
INNER JOIN Penalty_Marks pm ON q.QuestionId = pm.QuestionId
WHERE s.SessionId = 1;