加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql update table set – 无法绑定多部分标识符

发布时间:2020-12-12 08:40:18 所属栏目:MsSql教程 来源:网络整理
导读:我有2张桌子: 表1 =加油站名称(成对) 表2 =有协调信息(经度和纬度等) 表1的示例: StationID1 StationID2 Name1 Name2 Lattitude1 Longitude1 Lattitude2 Longitude2 Distance----------------------------------------------------------------------------
我有2张桌子:

>表1 =加油站名称(成对)
>表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

我想用表A中的坐标信息更新此表.我按照SQL Server 2005: The multi-part identifier … could not be bound尝试执行以下操作

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

我收到以下错误消息:

Msg 4104,Level 16,State 1,Line 1
The multi-part identifier “t1.Lattitude1” could not be bound.

但是,如果我执行以下操作,则可以将其存储到另一个表中.

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)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读