当前位置: 首页 > 面试题库 >

条件存在时从另一个表更新一个表中的多行

廖永长
2023-03-14
问题内容

我有两张桌子。

表1 包含的公司的地理位置在经纬度坐标中以lat / lng坐标进行地理定位the_geom

表2 还包含 表1 中未地理参考的相同公司,以及数百个地址已地理参考的其他公司。

我需要做的就是将 Table1* 公司的the_geomlat / lng值插入 表2中 的相应条目中。这些插入可以基于的共同点是该列。

***address

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


问题答案:

假设

插入“ the_geom”纬度/经度值

您实际上是要 更新 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参见此处的优秀手册。



 类似资料:
  • 我已经创建了一个多边形表(多边形),其中包含名称和点(使用多边形值) 我有另一个表(latlon ),它有lat和lot列,包含超过一百万条记录 我必须在“多边形”表中的点的帮助下更新纬度表中的列(区域名称) 以下 select 语句为一条记录提供正确的输出。 有人能帮我在POSTGIS中编写一个UPDATE查询来获取更多的lat,lon值吗?

  • 问题内容: 我已经阅读了很多有关如何更新多列的文章,但仍然找不到正确的答案。 我有一张桌子,我想从另一张桌子更新这张桌子。 如果我只运行select语句(在方括号之间),则脚本返回值,但无法使用update 问题答案: TSQL不支持行值构造函数。改用这个:

  • 问题内容: 我正在尝试根据另一个MySQL信息更新一个MySQL表。 我的桌子看起来像: 而表如下所示: 我想更新在与来自基于(存储在字符串字段)。 希望更新后的表如下所示: 我有一个有效的查询,但是非常慢: 这使我的CPU耗尽,最终导致超时,并且仅执行了一部分更新(有数千个要匹配的值)。我知道匹配的速度会很慢,但这是我必须将它们匹配在一起的唯一数据。 有没有更好的方法来更新这样的值?如果可以更快

  • 问题内容: 我试图用另一个表中找到的值更新一个表中的所有记录。 我尝试了相同基本查询的许多版本,并且始终收到相同的错误消息: 操作必须使用可更新的查询。 关于为什么此查询在Access DB中不起作用的任何想法? 也尝试了此操作,因为我意识到第二张表的每个型号都有多个型号记录-我只需要为每个型号找到第一条记录中的第一条说明。 …虽然仍然出现相同的错误。 问题答案: 您必须使用联接

  • 给定: 表A~400k行表B~150k行 两个表都有相同的GUID,但我需要在A中标记B中所有缺少的GUID,这两个GUID都有索引。 查询: 这个查询可以工作,但在我的机器上花了4、5个小时。有什么方法可以让这个查询运行得更快吗?

  • 问题内容: 我有以下两个表(在MySQL中): 如何找出哪些电话是由人,他们提出是不是在?所需的输出将是: 问题答案: 有几种不同的方法可以执行此操作,效率各不相同,具体取决于查询优化器的性能以及两个表的相对大小: 这是最简短的陈述,如果您的电话簿很短,则可能是最快的陈述: 或(感谢WOPR) (忽略这一点,正如其他人所说的那样,通常最好只选择所需的列,而不是’ ‘)