mySQL更新学生出勤率

时间:2015-11-02 09:00:01

标签: mysql

大家好,目前我正在研究与学生出勤跟踪相关的数据库。我正在处理的三个主要表格是StudentsModulesAttendance。结构如下所示:

  • 学生(学生ID,姓名,电子邮件,出勤),
  • 模块(moduleID,module,startTime,EndTime),
  • 出勤率(studentID,scanTime)。

基本上我需要做的是如果(考勤)中的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";

然而它没有用。任何人都可以告诉我如何使用别的东西来更新出勤率。

1 个答案:

答案 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