我在下面有一个数据库示例:
会话表:
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;