我有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
表 2的 示例:
IDInfo Name Lattitude Longitude ------------------------------------------- 93353477 BAR 37.929654 -87.029622
我想使用位于中的坐标信息更新此表tableA。我尝试根据SQL Server2005执行以下操作:无法绑定多部分标识符
tableA
update table1 set t1.[Lattitude1] = t2.[Lattitude] from table1 t1 left join table2 t2 on (t1.StationID1 = t2.IDInfo)
我收到以下错误消息:
消息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)
我对SQL还是很陌生,很难理解为什么有些东西行得通而另一些东西行不通。根据我在初始查询上方发布的链接,该链接应该可以正常工作-不?也许我花了很多时间尝试了这一点,但我并没有直截了当,最后我得到了一位同事的帮助(她建议了我上面提到的方法)。
我认为您可以修改UPDATE语句以引用UPDATE行中的表别名。
update t1 set t1.[Lattitude1] = t2.[Lattitude] from table1 t1 left join table2 t2 on (t1.StationID1 = t2.IDInfo)