2011-07-16 11 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テーブルに答えるUSERS_IDという名前の列を持っていると思いますか? – hatchet

+0

特に、いくつかのUserID列と1つのUSERS_IDがありますか? – Jacob

+0

はいUsersテーブルの主キーはUSERS_IDと呼ばれます。また、イベントテーブルの外部キーは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から返されたデータをどこで使用しているのかわかりません。だから私はあなたがそのビットを使用して、その結合が何も生成しない行を除外していると仮定しています。その場合、あなたはそれを参加から外に出すことができるかもしれません。しかし、それは左の結合なので、私の前提は実際には適用されません。

私は解決策が(USER_IDない)問題の説明と Top 1 with a left join

+0

こんにちは、ありがとう、私はそれにIDへのアクセスを与えるのですか? – pmillio

+0

私は編集することができる提案を追加しました。より具体的に推測するのではなく、達成しようとしていることについてもっと知る必要があります。 – hatchet

+0

申し訳ありませんが、コードを短縮するためにuserupdates部分を削除しました。私はそれを使用しています。 – pmillio

関連する問題