我有两张桌子 - 一张是我保留课程(course_sessions)的所有课程,另一张是(student_session_attendance)我们让学生参加特定课程。现在我需要检索特定课程的学生出勤数据。所以,我选择课程的所有课程,然后在那些课程中,我看看student_session_attendance。挑战是,学生可以在中途加入或中途离开,在这种情况下,我们不会为每个学生提供每个课程的数据。但是,我需要的是表student_session_attendance中的空行,即使学生的特定会话的信息不存在。这是我的疑问:
SELECT *
FROM student_session_attendance
WHERE student_id = 764 AND sessions_id IN
(SELECT id FROM course_sessions WHERE batch_id = 18);
我也试过这个:
SELECT A.id AS sessionid, A.batch_id, A.session_date, B.student_id, B.sessions_id, B.attendance
FROM course_sessions A
LEFT JOIN student_session_attendance B ON A.id = B.sessions_id
WHERE A.batch_id = 18
因此,如果一门课程有5个课程 - course_sessions将有5行。但student_session_attendance对于参加该课程的特定学生可能只有3行。但我需要所有5行,其中两行为缺失的行。
谢谢, Vikalp Jain