【发布时间】:2011-11-04 14:54:56
【问题描述】:
我需要查询每个学生的特定考试结果,我还想为没有输入分数的学生显示 NULL....
这是我的四张桌子
-
Student表 -
Scores表 -
Student -
student_subject
我的表格链接
- 成绩表 (user_id) 和学生表 (user_id)
- 考试表 (id) 和分数表 (exam.id)
student_subject (user_id) 和学生表 (user_id)
student_subject (group_id) 和考试表 (group_id)(由于某些重要原因,我的组数据库在另一个数据库中)
我的查询有效,但对于没有输入分数的学生,我没有 NULL 值
SELECT
scores.result, students.id, exam.name, exam.id
FROM
scores
LEFT JOIN
students ON scores.user_id = students.user_id
LEFT JOIN
exam ON exam.id = scores.exam_id
LEFT JOIN
students_subjects as ss ON ss.user_id = students.id
LEFT JOIN
students_subjects ON students_subjects.group_id = exam.group_id
WHERE
exam.id = 32
GROUP BY
scores.id
输出
如何为每个没有特定考试成绩的学生获取空值 (exam.id = 32)?
为@sceaj 编辑
我收到了你的查询(我将 WHERE Exam.id = 34 更改为 WHERE Exam.id = 36 以获得更好的测试)
SELECT scores.result,students.id,exam.name, exam.id
FROM exam
INNER JOIN students_subjects ON students_subjects.group_id = exam.group_id
INNER JOIN students ON students_subjects.user_id = students.user_id
LEFT OUTER JOIN scores ON scores.user_id = students.user_id
WHERE exam.id = 36
【问题讨论】:
-
请分享考试表结构。