相关子查询更新

时间:2009-10-17 11:59:37

标签: mysql sql mysql-error-1093

我已经在我的表中决定我不再想记录开始和结束时间,而只是记录开始时间和持续时间(以分钟为单位)。如何更新我的表,以便我的新列根据现有数据插入其值?我在下面的尝试产生错误:

  

您无法在FROM子句

中为更新指定目标表'lesson'
UPDATE lesson 
SET duration = 
    (SELECT TIME_TO_SEC(TIMEDIFF(finish_time,start_time))/60 
     FROM lesson AS l 
     WHERE l.id = lesson.id)

1 个答案:

答案 0 :(得分:4)

您不必这样做,因为您使用同一行中其他列的值更新列,只需:

UPDATE lesson 
SET duration = TIME_TO_SEC(TIMEDIFF(finish_time,start_time))/60