无法绑定多部分标识符“alias.field”

Posted

技术标签:

【中文标题】无法绑定多部分标识符“alias.field”【英文标题】:The multi-part identifier "alias.field" could not be bound 【发布时间】:2011-10-06 19:23:12 【问题描述】:

您好,我一直收到错误消息“无法绑定多部分标识符“Users.USERS_ID””我不确定查询出了什么问题。

这就是我的查询的样子;

SELECT Events.*, Users.UserName,Users.USERS_ID, 
Users.ThumbnailPic,
Users.CountryName,
ISNULL(UserStatusUpdates.UserStatus,'No Updates')AS LastUpdate,
UserStatusUpdates.MediaTypeID,UserStatusUpdates.USERSTATUS_ID,(UserStatusUpdates.AddDate)

FROM Events
JOIN Users ON Events.UserID = Users.USERS_ID
LEFT  JOIN (SELECT TOP 1 UserStatusUpdates.UserStatus,UserStatusUpdates.MediaTypeID,
UserStatusUpdates.USERSTATUS_ID,UserStatusUpdates.AddDate, UserStatusUpdates.UserID
  FROM UserStatusUpdates  where UserStatusUpdates.UserID = Users.USERS_ID
ORDER BY AddDate DESC) AS UserStatusUpdates ON UserStatusUpdates.UserID = Events.UserID 

WHERE Events.EventID = @EventID 
AND Users.bDeleted = 'False' 
AND Users.bSuspended =  'False'
END

谁能看到我做错了什么

【问题讨论】:

Users 表确实有一个名为 USERS_ID(不是 USER_ID)的列? 特别是,有一些UserID列和一个USERS_ID? 是的,Users 表中的主键称为 USERS_ID。 Events 表中的外键称为 UserID。 【参考方案1】:

我很确定问题出在这一点:

LEFT  JOIN (SELECT TOP 1 UserStatusUpdates.UserStatus,UserStatusUpdates.MediaTypeID,
UserStatusUpdates.USERSTATUS_ID,UserStatusUpdates.AddDate, UserStatusUpdates.UserID
  FROM UserStatusUpdates  where UserStatusUpdates.UserID = Users.USERS_ID
ORDER BY AddDate DESC) AS UserStatusUpdates ON UserStatusUpdates.UserID = Events.UserID 

SELECT TOP 1 子句无权访问 Users.USERS_ID。

我看不到您在哪里使用从 UserStatusUpdates 返回的任何数据。因此,我假设您正在使用该位来过滤掉该连接不产生任何结果的行。在这种情况下,您可以将其从连接中移出,并使用 EXISTS 移到 where。但这是一个左连接,所以即使我的假设也并不适用。

我认为问题和答案中描述了解决方案 Top 1 with a left join

【讨论】:

我已经编辑添加了一个可行的建议。我需要更多地了解您要完成的工作,而不必猜测更具体。 抱歉,为了缩短代码,我删除了 userupdates 部分,我正在使用它。 看到我回答的结尾,我添加了一个链接,指向我认为可以解决您的问题的内容 嗨 Hatchet,我试过它可以工作,但是它没有给我用户在 UserStatusUpdates 表中没有项目的项目。 你可能想用你当前的代码发布一个不同的问题,或者添加一个评论来显示你用什么替换了 TOP 1。

以上是关于无法绑定多部分标识符“alias.field”的主要内容,如果未能解决你的问题,请参考以下文章

协助 SQL 查询 - 无法绑定多部分标识符

多部分标识符无法绑定更新列

SQL 错误:无法绑定多部分标识符

无法绑定多部分标识符 - 子查询

无法绑定多部分标识符“p.ProductID”

SQL 错误 - 无法绑定多部分标识符“CF.OBJ”