如何使用Where语句从Select更新

时间:2016-09-14 14:27:12

标签: sql postgresql sql-update

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

在我的主表中,我有列

Equipment_ID  Type  Unit_Name  Address  Latitude  Longitude

并在aux表中,我为每个ID

更新了纬度和经度
Equipment_ID Type  Latitude Longitude 

所以我需要在主表的旧Lat和Lon上为每个ID添加新的Lat和Lon。我觉得这样的事情会起作用,但在这个例子中,我发现在另一个问题中,他只更新了一个字段而且让我很困惑。

 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

提前感谢任何提示。

1 个答案:

答案 0 :(得分:2)

您无法在更新语句中使用JOIN,您需要在where子句中执行“加入”。

另外: NOT 重复FROM子句中的目标表:

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