cod*_*nob 7 sql sql-server sql-update
我有2张桌子:
表1的示例:
StationID1 StationID2 Name1 Name2 Lattitude1 Longitude1 Lattitude2 Longitude2 Distance
------------------------------------------------------------------------------------------------
93353477 52452 FOO BAR NULL NULL NULL NULL NULL
93353527 52452 HENRY BENNY NULL NULL NULL NULL NULL
93353551 52452 GALE SAM NULL NULL NULL NULL NULL
Run Code Online (Sandbox Code Playgroud)
表2的示例:
IDInfo Name Lattitude Longitude
-------------------------------------------
93353477 BAR 37.929654 -87.029622
Run Code Online (Sandbox Code Playgroud)
我想用驻留的坐标信息更新此表tableA
.我尝试按照SQL Server 2005执行以下操作:无法绑定多部分标识符....
update table1
set t1.[Lattitude1] = t2.[Lattitude]
from table1 t1
left join table2 t2
on (t1.StationID1 = t2.IDInfo)
Run Code Online (Sandbox Code Playgroud)
我收到以下错误消息:
消息4104,级别16,状态1,行1
无法绑定多部分标识符"t1.Lattitude1".
但是,如果我执行以下操作,则可以将其存储到另一个表中.
SELECT t1.[StationID1]
,t1.[StationID2]
,t1.[Name1]
,t1.[Name2]
,t2.[Lattitude] AS [Lattitude1]
,t2.[Longitude] AS [Longitude1]
,t3.[Lattitude] AS [Lattitude2]
,t3.[Longitude] AS [Longitude2]
from table1 t1
left join table2 t2
on (t1.StationID1 = t2.IDInfo)
left join table2 t3
on (t1.StationID2 = t2.IDInfo)
Run Code Online (Sandbox Code Playgroud)
我是SQL的新手,很难理解为什么有些东西有效,有些则没有.基于我在上面发布的链接,我的初始查询应该有效 - 不是吗?也许我没有直接思考,因为我花了很多时间尝试这个,我终于得到了同事的帮助(她提出了我上面提到的方法).
bob*_*obs 14
我认为您可以修改UPDATE语句以引用UPDATE行中的表别名.
update t1
set t1.[Lattitude1] = t2.[Lattitude]
from table1 t1
left join table2 t2
on (t1.StationID1 = t2.IDInfo)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
25148 次 |
最近记录: |