Joh*_*ohn 11 sql postgresql postgis sql-update
我有两张桌子.
表1包含公司,其位置在名为的列中使用lat/lng坐标进行地理配准the_geom
表2还包含来自Table1的相同公司,而不是地理参考,以及其他数百个地址为地理参考的公司.
我需要做的就是将Table1公司的the_geomlat/lng值插入表2中的相应条目.这些插入可以基于的共同点是列.address
简单的问题,我确定,但我很少使用SQL.
Erw*_*ter 23
假设通过
插入"the_geom"lat/lng值
你实际上是要更新 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
Run Code Online (Sandbox Code Playgroud)
还假设address列具有UNIQUE值.
详细介绍UPDATE了这里的优秀手册.
我遇到了类似的问题,但是当我尝试上述解决方案时,出现了类似的错误
't2' 附近的语法不正确
对我有用的代码是:
UPDATE table2
SET the_geom = t1.the_geom
FROM table1 as t1
WHERE table2.address = t1.address AND table2.the_geom <> t1.the_geom
Run Code Online (Sandbox Code Playgroud)
我知道我的回答晚了 5 年,但我希望这能帮助像我这样找不到此解决方案的人。
如果您是mysql用户(如我),并且上述脚本不起作用,则这是mysql等效项。
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
Run Code Online (Sandbox Code Playgroud)
所有功劳归OP。
| 归档时间: |
|
| 查看次数: |
35327 次 |
| 最近记录: |