从我的照片中修改了一些内容,以便你们可以理解它 我有这个数据库。我正在尝试根据另一个表中的另一个值更新表中的值。
我想从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
我不知道该怎么做,我很感激一些帮助,谢谢
答案 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>
)