Update multiple rows in a table from another table when condition exists

后端 未结 3 937
说谎
说谎 2021-02-13 17:58

I have two tables.

Table1 contains companies whose locations are georeferenced with lat/lng coordinates in a column called the_geom

相关标签:
3条回答
  • 2021-02-13 18:34

    Assuming that by

    insert "the_geom" lat/lng values

    you actually mean to update existing rows in 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
    

    Also assuming that the address column has UNIQUE values.
    Details about UPDATE in the excellent manual here.

    0 讨论(0)
  • 2021-02-13 18:37

    I had a similar problem, but when I tried the solutions mentioned above, I got an error like

    Incorrect syntax near 't2'

    The code that worked for me is:

    UPDATE table2
    SET the_geom = t1.the_geom
    FROM table1 as t1
    WHERE table2.address = t1.address AND table2.the_geom <> t1.the_geom
    

    I know that my answer is 5 years late, but I hope this will help someone like me, who couldn't find this solution.

    0 讨论(0)
  • 2021-02-13 18:41

    If you are a mysql user(like me) and if the above script is not working, here is the mysql equivalent.

    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
    

    All credits to the OP.

    0 讨论(0)
提交回复
热议问题