mySQL更新了一个值

时间:2014-04-12 15:04:28

标签: mysql

从我的照片中修改了一些内容,以便你们可以理解它 我有这个数据库。我正在尝试根据另一个表中的另一个值更新表中的值。

enter image description here

我想从SUM更新salary,如下所示:

( sum  = presence * 5 )

这是我一直试图使用的(不成功)

update table salary
      set suma.salary = users.presence * 5 
      FROM salary INNER JOIN users1 INNER JOIN presence on id_salary = id_presence

我不知道该怎么做,我很感激一些帮助,谢谢

1 个答案:

答案 0 :(得分:1)

在MySQL中使用连接UPDATE表时,请使用以下语法:

UPDATE table1, table2
   SET table1.column = some expression
WHERE table1.column = table2.column

也就是说,即使使用更新后的图片,在SQL中也提到了我无法理解的列,在哪个表中找到。 salariu和users1之间也有内部联接,没有连接条件。你能否清理一下这个问题,让一切都清楚?

假设您正在对正在讨论的数据库结构进行更新,那么您可以开始研究这个数据:

UPDATE salary, presence
  SET salary.sum = SUM(presence.hours) * 5
WHERE presence.id = salary.id
AND   <some filter on the month that depends on salary.date>

另一种方式,但我不确定它是否在所有RDBMS中都受支持,会是这样的:

UPDATE salary
  SET sum = (
     SELECT SUM(presence.hours) * 5
     FROM user, presence
     WHERE presence.id = salary.id
     AND   <some filter on the month that depends on salary.date>
  )