我有一個問題在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