【问题标题】:How to Update from a Select using a Where statement如何使用 Where 语句从 Select 中更新
【发布时间】:2016-09-14 14:27:12
【问题描述】:

我在试图找到这个问题的答案时遇到了一点问题。我需要使用 Update 将新信息放在某些行中,使用带有 Where 语句的 Select。

在我的主表中,我有列

Equipment_ID  Type  Unit_Name  Address  Latitude  Longitude

在辅助表中,我有每个 ID 的更新纬度和经度

Equipment_ID Type  Latitude Longitude 

所以我需要将每个 ID 的新纬度和经度放在主表中的旧纬度和经度之上。我认为这样的事情会起作用,但在这个例子中,我在另一个问题中发现,他只更新了一个字段,这让我很困惑。

 UPDATE  a
 SET     a.marks = b.marks
 FROM    tempDataView a
   INNER JOIN tempData b
     ON a.Name = b.Name

如何更新纬度和经度,但作为 where 语句,仅在何时更新

WHERE main.Equipment_ID = aux.Equipment_ID
AND   main.Type         = aux.Type

提前感谢您的任何提示。

【问题讨论】:

    标签: sql postgresql sql-update


    【解决方案1】:

    您不能在更新语句中使用JOIN,您需要在where 子句中进行“加入”。

    另外:NOTFROM 子句中重复目标表:

    UPDATE  main
       SET latitude = aux.latitude, 
           longitude = aux.longitude
    FROM aux
    WHERE main.Equipment_ID = aux.Equipment_ID
    AND   main.Type         = aux.Type
    

    【讨论】:

    • 嗯,从技术上讲,您可以UPDATE 中使用JOIN,只是不要更新表引用。
    猜你喜欢
    • 1970-01-01
    • 2011-09-19
    • 1970-01-01
    • 2010-11-06
    • 2017-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-10
    相关资源
    最近更新 更多