使用多个表的SQL Server更新

时间:2013-03-21 18:07:03

标签: sql sql-server

我对SQL不太了解 - 我只是在编写一个RFID学生注册扫描程序,它与SQL Server中的数据库连接。

我确信这很容易做到,但我无法找到解决问题的方法。

我希望能够以基本形式做这样的事情,这是行不通的:

UPDATE Attendance 
SET    A1 = 'TRUE' 
WHERE  Student.ID = '3a0070c48' 
  AND  Module.Day = 'Friday' ;

但完整的SQL Update必须是这样的:

UPDATE Attendance 
SET    A1 = 'TRUE' 
WHERE  Student.ID = '3a0070c48' 
  AND  Module.Day = 'Friday' 
  AND  '1100' BETWEEN Module.StartTime 
                  AND Module.EndTime ;

1 个答案:

答案 0 :(得分:8)

好的,你需要做这样的事情:

UPDATE A
SET A.A1 = 'TRUE' 
FROM Attendance A
INNER JOIN Student S
    ON A.StudentId = S.ID
INNER JOIN Module M
    ON A.ModuleId = M.ID
WHERE S.ID = '3a0070c48' 
AND M.[Day] = 'Friday' 
AND '1100' BETWEEN M.StartTime AND M.EndTime

我猜测了与您的表相关的列,但它应该非常接近您所拥有的,您需要使用真正的列。