PSQL:非平凡的更新和加入

时间:2016-12-06 12:37:35

标签: sql postgresql join psql

我正在尝试从 liquidation_speed 表中更新余额表。问题是我需要加入广告系列,以根据广告系列ID设置更新条件。

余额表:id,liquidation_speed

广告系列表:id,balance_id

liquidation_speed 表:campaign_id,count

这是我构建的查询,它给出了一个错误:

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子句条目的无效引用 第5行:...广告系列活动.balance_id = balances.id ...

提示:表“test_balances”有一个条目,但不能从查询的这一部分引用它。

1 个答案:

答案 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子句中的条件。 Balances子句中不知道FROM(所有连接都在其中)。这就是为什么你需要WHERE子句中的附加条件。