私は次の表を持っています:外部適用の使用NULL値を返すには
主キーとユーザー名を持つユーザー。主キー、ステータスの更新やユーザーID(外部キー)
ID UserID UserStatus 1 1 Really Good 2 1 Leaving Now 3 2 I concur
とANイベント出席者があり、主キーとイベント名を持っている
ID Username 1 Fred 2 John 3 Jack
イベント
ID Eventname 1 Ferrari Road Show 2 Flower Show
UserStatusUpdatesテーブル主キーと2つの外部キー(イベントプライマリキーとユーザプライマリキー)を持つテーブル
ID UserID EventID 1 1 1 2 2 1 3 3 1
私が遭遇している問題は、すべてのイベント出席者と最新のステータス更新を返す必要があるということですが、ユーザーが実際にステータス更新を行っていないケースがあります。
これは私のクエリは次のようになります。
SELECT EventAttendee.*, Users.UserName,Users.USERS_ID,
Users.ThumbnailPic,
Users.CountryName,
ISNULL(UserStatusUpdates.UserStatus,'No Updates')AS LastUpdate,
UserStatusUpdates.MediaTypeID,UserStatusUpdates.USERSTATUS_ID,(UserStatusUpdates.AddDate)
FROM EventAttendee
JOIN Users ON Events.UserID = Users.USERS_ID
OUTER APPLY (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 WHERE UserStatusUpdates.UserID = EventAttendee.UserID
WHERE EventAttendee.EventID = @EventID
AND Users.bDeleted = 'False'
AND Users.bSuspended = 'False'
END
はどうやって更新を行っていない可能性があり、ユーザーを取り戻すことができますか?
私は背中合わせを理解していないのwheres - WHERE TempUserStatusUpdates.UserID = EventAttendee.UserID WHERE EventAttendee.EventID = @EventID – hatchet
申し訳ありませんが、それは私が戻ってそれを変更した間違いでしたUserStatusUpdates。 – pmillio