当条件存在时,从另一个表更新一个表中的多行

问题描述 投票:0回答:4

我有两张桌子。

Table1 包含其位置通过名为

the_geom

的列中的纬度/经度坐标进行地理参考的公司

Table2 还包含来自 Table1 的相同公司(未进行地理参考),以及地址经过地理参考的数百家其他公司。

我需要做的就是将

Table1
公司的 the_geom lat/lng 值插入到 Table 2 中的相应条目中。这些插入项所基于的共同点是
address
列。

简单的问题,我确信,但我很少使用 SQL。

sql postgresql sql-update postgis
4个回答
31
投票

假设

插入“the_geom”纬度/经度值

您实际上的意思是

UPDATE
中的现有行:
table2

相关答案:

    我如何(或可以)在多列上选择不同的?
  • 还假设
UPDATE table2 t2 SET the_geom = t1.the_geom FROM table1 t1 WHERE t2.address = t1.address AND t2.the_geom IS DISTINCT FROM t1.the_geom; -- avoid empty updates

列具有

address
值。
手册中
UNIQUE的详细信息


11
投票

“t2”附近的语法不正确

对我有用的代码是:

UPDATE

我知道我的答案晚了5年,但我希望这能帮助像我这样找不到这个解决方案的人。


6
投票

UPDATE table2 SET the_geom = t1.the_geom FROM table1 as t1 WHERE table2.address = t1.address AND table2.the_geom <> t1.the_geom

所有功劳都归功于OP。


0
投票

UPDATE table2 t2, table1 t1 SET the_geom = t1.the_geom WHERE t2.address = t1.address AND t2.the_geom <> t1.the_geom; -- avoid empty updates

© www.soinside.com 2019 - 2024. All rights reserved.