我有3张桌子:
id serial PK
money int
id serial PK
收入整数
id serial PK
manager_id引用管理员(id)
facilities_work_data_id引用facilities_work_data(id)
目的是通过将来自facilities_work_data.income的值添加到manager.money列来更新所有管理器表行,而这些值又必须选择id列:
SELECT facilities_work_data_id from manager_facilities WHERE manager.id = manager_facilities.manager_id
至少我发现了以下要求:
UPDATE A AS a SET money = a.money + b.income FROM B AS b WHERE b.a_id = a.id
但不是我的情况,似乎我还需要一次加入。
你可以帮忙解决这个问题吗?
答案 0 :(得分:1)
您可以从两个表中获取数据,并在where子句中添加条件,如下所示
update manager M
set money = money + FWD.income
FROM manager_facilities MF, facilities_work_data FWD
WHERE M.id = MF.manager_id
AND MF.facilities_work_data_id = FWD.id