У меня есть хранимая процедура, которая не была написана мной.Почему соединение в одной таблице дважды возвращает разные значения столбцов?
Я не могу понять, как они присоединяются к тем же таблицам tblUsers
дважды, и он возвращает различные значения столбцов:
select distinct
usr.Name_FirstLast AS AssignedTo,
usr1.Name_FirstLast as AssignedBy
from
dbo.tblNoteStore nt_str
join
dbo.tblNoteEntities entit ON nt_str.ID = entit.NoteGUID
join
dbo.tblNoteDiaries nt_dia ON nt_str.ID = nt_dia.NoteGUID
join
dbo.tblNoteEntries entri on nt_str.ID = entri.NoteGUID
and nt_dia.EntryGUID = entri.ID
and entit.NoteGUID = entri.NoteGUID
left join
dbo.tblNoteRecipients recip ON entri.ID = recip.EntryGUID
--this is where the same table used twice
left join
dbo.tblUsers usr ON recip.UserGUID = usr.UserGUID -- returns AssignedTo column
left join
dbo.tblUsers usr1 ON usr1.UserGuid = entri.UserGUID -- returns AssignedBy column
where
usr.UserGUID = '55610B2F-1997-40C0-9F01-EED3ED2939F9'
Результат является то, что мне нужно, но почему это происходит именно так?
dbo.tblUsers
имеет первичный ключUserGUID
dbo.tblNoteEntries
имеет внешний ключUserGUID
dbo.tblNoteRecipients
имеет внешний ключUserGUID
Кроме того, я должен использовать все эти таблицы в JOIN
, чтобы получить результат?
Duplicate of [Почему объединение двух одинаковых таблиц в двух разных столбцах возвращает разные значения столбцов?] (Http://stackoverflow.com/questions/41781241/why-joining-same-table-twice-on-two-different- колонны-возвращает-разные колонки-V) – HappyTown