2016-12-06 81 views
0

我在嘗試更新餘額liquidation_speed表。問題是我需要加入活動以根據活動ID設置更新條件。PSQL:非平凡更新和加入

餘額表:ID,liquidation_speed

活動表:ID,balance_id

liquidation_speed表:CAMPAIGN_ID,算上


這裏是我構建的查詢,這給出了一個錯誤:

UPDATE balances 
SET  liquidation_speed=liquidation_speed.count 
FROM liquidation_speed 
JOIN campaigns 
     ON campaigns.balance_id=balances.id 
WHERE campaigns.id = liquidation_speed.campaign_id; 

錯誤:無效引用FROM子句條目表 「平衡」 LINE 5:...系列在campaigns.balance_id = balances.id ...

提示:有一個條目表「test_balances」,但它不能從查詢的這部分引用。

+0

這會返回什麼錯誤? –

+0

我還是不明白這個問題。你到底想做什麼?什麼是期望的輸出? –

回答

0

ON需要應用到列FROM子句中:

UPDATE balances 
    SET liquidation_speed = liquidation_speed.count 
    FROM liquidation_speed JOIN 
     campaigns 
     ON campaigns.id = liquidation_speed.campaign_id 
    WHERE campaigns.balance_id = balances.id; 

我只是換了ON子句中的條件和條款WHERE。在FROM子句中(其中所有連接均爲),Balances未知。這就是爲什麼您需要WHERE條款中的附加條件。

+0

謝謝!您的解決方案很有用 – kurenov