大家好,目前我正在研究与学生出勤跟踪相关的数据库。我正在处理的三个主要表格是Students
,Modules
和Attendance
。结构如下所示:
基本上我需要做的是如果(考勤)中的scanTime在(模块)中的startTime和EndTime之间,则将(学生)表的出席率提高+1。我不确定是否需要使用任何加入这里或者只是IF语句。
我一直试图通过这样做来更新出勤率
SELECT s.Student_ID,s.Attendance,a.ScanTime,a.ClassRoom,m.Module,m.Room, m.StartTime,m.EndTime
FROM students AS s,attendance a,modules m
IF a.ScanTime < m.StartTime AND a.ScanTime > m.EndTime
UPDATE students
SET s.attendance = attendance + 1
WHERE s.Student_ID = "X111111111";
然而它没有用。任何人都可以告诉我如何使用别的东西来更新出勤率。
答案 0 :(得分:0)
在
使用join语句defined(UINT_LEAST{N}_MAX)
示例
FROM students AS s,attendance a,modules m
并添加s。
避免暧昧FROM students s join attendance a on s.[column] = a.[column]
join modules m on a.[column] = m.[column]
检查你的IF声明
请参阅http://dev.mysql.com/doc/refman/5.0/en/control-flow-functions.html。