使用与另一个表不同的值更新不同行的列

时间:2018-01-27 04:25:33

标签: postgresql sql-update

我有一个名为poi的postgres表,如下所示:

TABLE1 : 

gz_id| rt_id | gz_name | rt_name | gz_acc | rt_acc
23              sabah                414

TABLE2 : 

rt_id | rt_name | rt_acc
44     sabah_101   414

如何更新表1以达到如下结果?

TABLE1 : 

gz_id| rt_id | gz_name | rt_name | gz_acc | rt_acc
23       44     sabah    sabah_101  414      414

我尝试使用如下更新,但它不起作用。它使用相同的值更新所有其他行。

尝试下面的查询,没有工作:

查询:

Update table 1
set t1.rt_id = t2.rt_id,
set t1.rt_name = t2.rt_name,
set t1.rt_acc = t2.rt_acc
from t2 
where t1.rt_acc = t2.rt_acc

1 个答案:

答案 0 :(得分:0)

尝试

UPDATE table1 
   SET rt_id = table2.rt_id,
       rt_name = table2.rt_name, 
       rt_acc = table2.rt_acc       
  FROM table2 
  WHERE gz_acc = table2.rt_acc;