如何使用来自另外两个表的数据进行更新查询(postgresql)

时间:2014-09-29 16:59:16

标签: sql postgresql

我有3张桌子:

  1. 经理列:
  2. id serial PK

    money int

    1. facilities_work_data包含列:
    2. id serial PK

      收入整数

      1. manager_facilities with colunns:
      2. 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 
        

        但不是我的情况,似乎我还需要一次加入。

        你可以帮忙解决这个问题吗?

1 个答案:

答案 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
相关问题