2011-07-16 24 views
0

您好,我一直收到錯誤「多部分標識符」Users.USERS_ID「無法綁定」我不確定查詢出了什麼問題。無法綁定多部分標識符「alias.field」

這就是我的查詢的樣子;

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 

有人能看到我在做什麼錯

+0

的用戶表確實有一個名爲USERS_ID列(不USER_ID)? – hatchet

+0

特別是,有一些UserID列和一個USERS_ID? – Jacob

+0

是的,Users表中的主鍵稱爲USERS_ID。而Events表中的外鍵叫做UserID。 – pmillio

回答

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_ID。

我看不到您在哪裏使用從UserStatusUpdates返回的任何數據。所以我假設你正在使用那個位來過濾那些連接什麼都不產生的行。在這種情況下,您可以將其從一個連接中移出,然後移入EXISTS所在的位置。但是這是一個左連接,所以即使我的假設並不適用。

我認爲在解決這個問題的描述和回答 Top 1 with a left join

+0

嗨,感謝您的回覆,我如何讓它訪問ID? – pmillio

+0

我已編輯添加可能有效的建議。我需要更多地瞭解你想要完成的事情,而不必猜測更具體。 – hatchet

+0

對不起,我刪除了userupdates部分爲了縮短代碼,我正在使用它。 – pmillio

相關問題