2014-09-29 15 views
0

我有3個表:如何使更新查詢中使用的數據來自兩個其它表(PostgreSQL的)

  1. 經理列:

ID系列PK

錢詮釋

  1. facilities_work_data with columns:

ID的序列PK

收入整數

  • manager_facilities與colunns:
  • ID的序列PK

    MANAGER_ID引用管理器(ID)

    facilities_work_data_id references 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

    你可以從兩個表中的數據,並在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 
    
    相關問題