15

我有两张桌子。

1 包含的公司的位置在名为the_geom

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

我需要做的就是将来自Table1the_geom公司的lat/lng 值插入到它们在表 2中的相应条目中。这些插入可以基于的共同点是列。address

很简单的问题,我敢肯定,但我很少使用 SQL。

4

3 回答 3

27

假设由

插入“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

于 2012-10-13T03:09:47.383 回答
9

我有一个类似的问题,但是当我尝试上面提到的解决方案时,我得到了一个错误,比如

'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

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

于 2018-05-17T13:29:18.213 回答
6

如果你是 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

OP的所有学分。

于 2013-05-10T09:18:50.940 回答