Следующий код работает нормально:
SELECT * -- * only for clarity
FROM
( SELECT dbo.Contracts.buyerID AS PreviousContractPartyIDs
FROM dbo.Contracts
WHERE dbo.Contracts.sellerID = @UserID
GROUP BY dbo.Contracts.buyerID
UNION
SELECT dbo.Contracts.sellerID
FROM dbo.Contracts
WHERE dbo.Contracts.BuyerID = @UserID
GROUP BY dbo.Contracts.sellerID
) AS ListOfAllMembersPreviouslyTradedWith
LEFT JOIN
( SELECT dbo.Members.ID,
dbo.Members.Name,
dbo.Members.Description
FROM dbo.Members
) AS MemberDetails
ON ListOfAllMembersPreviouslyTradedWith.PreviousContractPartyIDs = MemberDetails.ID
Верхняя часть выбирает всех пользователей, с которыми торговал Участник, а нижняя часть добавляет подробности о каждом из них. Однако участник может добавить примечания о каждом пользователе в tbl.Notes, но я не могу понять synatx / структуру, чтобы добавить еще одно объединение по существу следующим образом:
LEFT JOIN
( SELECT MemberID, NoteAboutMemberID, Note, UTC from dbo.Notes ) AS NoteDetails
ON ListOfAllMembersPreviouslyTradedWith.PreviousContractPartyIDs = NoteDetails.NoteAboutMemberID