我有一个问题在SQL中,我试图找出学生出席在一个注册系统中的类我正在建设但它赢了“别让我在子查询中使用父列,SQL查询选择每名学生使用子查询无法使用从父查询行使用出勤
SELECT A.student_id, TRUNCATE((100 - ((100/B.reg_num) * C.abs_num)), 0) AS attendance FROM
students A
JOIN (
SELECT COUNT(*) AS reg_num
FROM students
JOIN seminargroup_student ON seminargroup_student.student_id = students.student_id
JOIN seminar_group ON seminar_group.seminar_group_id = seminargroup_student.seminar_group_id
JOIN modules ON modules.module_id = seminar_group.seminar_group_module_id
JOIN register_seminar ON register_seminar.seminar_id = seminar_group.seminar_group_id
JOIN registers ON registers.register_id = register_seminar.register_id
WHERE modules.module_id =1 AND students.student_id = A.student_id
) B
JOIN (
SELECT COUNT(*) AS abs_num
FROM students
JOIN seminargroup_student ON seminargroup_student.student_id = students.student_id
JOIN seminar_group ON seminar_group.seminar_group_id = seminargroup_student.seminar_group_id
JOIN modules ON modules.module_id = seminar_group.seminar_group_module_id
JOIN absence ON students.student_id = absence.student_id
WHERE modules.module_id =1 AND students.student_id = A.student_id
) C
这将返回:#1054 - 未知列‘A.student_id’在‘where子句’
感谢您的帮助!
您的样品doen't包含“A.student_id”,并使用“学生作为A”和“学生”。请张贴导致错误的代码 – Nogard
我无法在任何WHERE子句中找到A.student_id。它只在SELECT子句中。 –
也没有'ON'子句与外部查询中的三个连接中的任何一个相关联... – MatBailie