Microsoft SQL 服务器上自动生成的行
Auto-generated row on Microsoft SQL Server
我目前正在研究基于指纹的学生考勤系统。我正在使用 Arduino Uno 和指纹传感器获取学生出勤记录并存储在 SQL 服务器中。我的数据库中有一个名为 Attendance
的 table,用于存储学生出勤率 records.But 我对此有疑问。
假设学生A今天缺勤,考勤记录将不会存储在table Attendance
学生A。意思是我只能显示今天到校的学生,学生A的出勤记录不能给老师看。
教师只能在选择日期后查看学生出勤记录,教师看不到学生A的出勤记录,因为tableAttendance
中没有学生A的记录
那我该如何解决呢?有什么建议或参考吗?感谢您的帮助。谢谢
SELECT *
FROM STUDENT
LEFT JOIN ATTENDANCEMARK
ON STUDENT.ID = ATTENDANCEMARK.STUDENTID
WHERE ATTENDANCEMARK.DATE = @DATE OR ATTENDANCEMARK.DATE IS NULL
说明:您希望列出所有具有今天出勤分数的学生,但想要列出所有没有出勤分数的学生。
假设您将日期作为参数传递,您可以 left outer join
到出勤 table,并将日期检查放在 on
子句中(相反到 where
子句。将它放在 where
子句中有效地将 left outer join
变成 inner join
,这是由于查询的解析和执行顺序。
select *
from [student] s
left outer join [attendance] a
on s.[id] = a.[id]
and a.[attendanceRecordDate] = @date
我目前正在研究基于指纹的学生考勤系统。我正在使用 Arduino Uno 和指纹传感器获取学生出勤记录并存储在 SQL 服务器中。我的数据库中有一个名为 Attendance
的 table,用于存储学生出勤率 records.But 我对此有疑问。
假设学生A今天缺勤,考勤记录将不会存储在table Attendance
学生A。意思是我只能显示今天到校的学生,学生A的出勤记录不能给老师看。
教师只能在选择日期后查看学生出勤记录,教师看不到学生A的出勤记录,因为tableAttendance
那我该如何解决呢?有什么建议或参考吗?感谢您的帮助。谢谢
SELECT *
FROM STUDENT
LEFT JOIN ATTENDANCEMARK
ON STUDENT.ID = ATTENDANCEMARK.STUDENTID
WHERE ATTENDANCEMARK.DATE = @DATE OR ATTENDANCEMARK.DATE IS NULL
说明:您希望列出所有具有今天出勤分数的学生,但想要列出所有没有出勤分数的学生。
假设您将日期作为参数传递,您可以 left outer join
到出勤 table,并将日期检查放在 on
子句中(相反到 where
子句。将它放在 where
子句中有效地将 left outer join
变成 inner join
,这是由于查询的解析和执行顺序。
select *
from [student] s
left outer join [attendance] a
on s.[id] = a.[id]
and a.[attendanceRecordDate] = @date