0
在QuizQuestions表中獲取特定測驗的所有問題。即使連接的表包含空值,也可以列出表中所有需要的記錄
從ClassStudents表中獲取特定班級中的所有學生。
從StudentAnswers表中獲取來自指定班級的所有學生回覆。只存儲學生在測驗中回答的問題記錄。
所以我寫了這一點:
SELECT cs.lastName, qq.questionStem, ISNULL(sa.selectedAnswer, 'Did not answer') AS Answer
FROM StudentAnswers sa
right join QuizQuestions qq ON qq.questionId = sa.questionId
right join ClassStudents cs ON sa.studentID = cs.studentID
WHERE qq.quizID = 12345
AND cs.classID = 500
ORDER BY lastName
它得到的數據,但如果學生沒有回答某個問題或所採取的測驗,我只是得到他們的lastName但空值的questionStem。
但我想查看他們沒有回答的問題的questionStem。
看着我的查詢,我可以看到爲什麼我得到一個NULL。這是因爲如果學生從未回答問題,那麼StudentAnswers表中沒有條目。
有沒有辦法重新編寫查詢,以便每個問題都顯示出來,即使學生從未回答過它?
我想要得到這樣的結果:
lastName questionStem Answer
--------------------------------------------------------
Smith Favorite color? Black
Jones Favorite color? Did not answer
Aki Favorite color? Red
Smith Your age? 22
Jones Your age? 71
Aki Your age? Did not answer
你希望當一個答案讓學生姓名怎麼辦學生沒有回答這個問題?在我看來,你的設計有問題。你應該把你的答案分成兩個表格。一個持有標題的詳細信息,如學生信息,測驗編號,開始日期等。然後第二個表,以保持對每個問題的迴應。 –