2016-09-14 61 views
0

我在尝试为此找到答案时遇到了一些问题。我需要使用更新来在一些行中放置新的信息,使用Select和Where语句。如何使用where语句从Select中进行更新

在我的主表我有列

Equipment_ID Type Unit_Name Address Latitude Longitude 

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

Equipment_ID Type Latitude Longitude 

所以我需要把新纬度和对于主表中的旧的经纬度和经度的每个ID使用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 

先感谢您的任何提示。

回答

2

在更新声明中不能使用JOIN,您需要在where子句中执行“连接”。

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

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

当然,从技术上,你可以* *使用'JOIN'在'UPDATE',只是不表参考感更新。 –

相关问题