当条件存在于表从另一个表更新多行(Update multiple rows in a table f

2019-08-01 10:30发布

我有两个表。

表1中包含的公司,其位置与地理参考纬度/经度坐标,一列名为the_geom

表2还包含从表1相同的公司,而不是地理参考,与其他数百家公司,其地址是地理参考的一起。

所有我需要做的是插入the_geom纬度/经度值从表1的公司为表2的相应的条目。 在其上这些插入可以基于它们的共同点是address栏。

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

Answer 1:

假设通过

插入“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中的出色手册这里 。



Answer 2:

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



Answer 3:

我有一个类似的问题,但是当我试图上面提到的解决方案,我得到了这样的错误

不正确的语法附近“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年晚了,但我希望这会帮助我这样的人,谁也找不到这个解决方案。



文章来源: Update multiple rows in a table from another table when condition exists