我有两张桌子。
Table1 包含其位置通过名为
the_geom
的列中的纬度/经度坐标进行地理参考的公司
Table2 还包含来自 Table1 的相同公司(未进行地理参考),以及地址经过地理参考的数百家其他公司。
我需要做的就是将
Table1公司的
the_geom
lat/lng 值插入到 Table 2 中的相应条目中。这些插入项所基于的共同点是 address
列。
简单的问题,我确信,但我很少使用 SQL。
假设
插入“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
的详细信息。
对我有用的代码是:
UPDATE
我知道我的答案晚了5年,但我希望这能帮助像我这样找不到这个解决方案的人。
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。
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