小编典典

sql更新表集-无法绑定多部分标识符

sql

我有2张桌子:

  • Table1 =加油站名称(成对)
  • Table2 =具有坐标信息(经度和纬度等)

表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执行以下操作:无法绑定多部分标识符

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还是很陌生,很难理解为什么有些东西行得通而另一些东西行不通。根据我在初始查询上方发布的链接,该链接应该可以正常工作-不?也许我花了很多时间尝试了这一点,但我并没有直截了当,最后我得到了一位同事的帮助(她建议了我上面提到的方法)。


阅读 167

收藏
2021-03-23

共1个答案

小编典典

我认为您可以修改UPDATE语句以引用UPDATE行中的表别名。

update t1
set t1.[Lattitude1] = t2.[Lattitude]
from table1 t1
left join table2 t2 
on (t1.StationID1 = t2.IDInfo)
2021-03-23