我有两个表。
表1中包含的公司,其位置与地理参考纬度/经度坐标,一列名为the_geom
表2还包含从表1相同的公司,而不是地理参考,与其他数百家公司,其地址是地理参考的一起。
所有我需要做的是插入the_geom
纬度/经度值从表1的公司为表2的相应的条目。 在其上这些插入可以基于它们的共同点是address
栏。
简单的问题,我相信,但我很少使用SQL。
我有两个表。
表1中包含的公司,其位置与地理参考纬度/经度坐标,一列名为the_geom
表2还包含从表1相同的公司,而不是地理参考,与其他数百家公司,其地址是地理参考的一起。
所有我需要做的是插入the_geom
纬度/经度值从表1的公司为表2的相应的条目。 在其上这些插入可以基于它们的共同点是address
栏。
简单的问题,我相信,但我很少使用SQL。
假设通过
插入“the_geom”纬度/经度值
你实际上意味着更新表2中现有行:
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
中的出色手册这里 。
如果你是一个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。
我有一个类似的问题,但是当我试图上面提到的解决方案,我得到了这样的错误
不正确的语法附近“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年晚了,但我希望这会帮助我这样的人,谁也找不到这个解决方案。