首页 > 解决方案 > 根据 id 列评估两个表中的 int 列,更新其总和

问题描述

我的 Postgres DB 中有以下两个表。

表格1:

car_id   Price      
176        0
39         1
86         4
2          0

表 2:

car_id   Price      
176        2
39         1
86         5
2          0

我想根据 car_id 上的匹配比较这两个表,并总结价格列并用新添加的总和更新表 1。

更新后的表1应该有这个输出:

car_id   Price      
176        2
39         2
86         9
2          0

这是我尝试的:

UPDATE table1  
SET price = (
                SELECT table2.price
                FROM table2
                WHERE table2.car_id = table1.car_id
              )
WHERE exists
(
   SELECT table2.price
   FROM table2
   WHERE table2.car_id = table1.car_id
)

我知道这只是更新 table1 中的值以反映 table2,我将如何获取价格总和并用新的总和更新 table1?

标签: sqlpostgresql

解决方案


使用更新连接:

UPDATE table1 t1
SET Price = Price + t2.Price
FROM table2 t2
WHERE t1.car_id = t2.car_id;

推荐阅读