Я пытаюсь сделать довольно прямую таблицу ссылок TSQL, но я падаю на первое препятствие, в основном я хочу двустороннюю ссылку.
Например ....
Если контакт 1 добавляет контакт 2, то контакт 2 подключается к контакту 1 (и наоборот), идея заключается в том, что запрос распознает их в паре.
Пример таблицы
RelatedDataID UniqueID Related_UniqueID
-------------------------------------------
1 AA BB
2 CC DD
3
ПользователиТаблица
UserID UniqueID Username
----------------
1 AA Bob
2 BB Fred
3 CC Charlie
4 DD Billy
Таким образом, в основном, когда я запускаю запрос с UniqueID "AA", он возвращает
Username RelatedID
------------------------
Bob 1
Fred 1
Charlie 0
Billy 0
Но также, когда я запускаю его на UniqueID "CC", он должен возвращать
Username RelatedID
---------------------
Bob 0
Fred 0
Charlie 2
Billy 2
Кто-нибудь знает, как мне этого добиться?Моя текущая хранимая процедура, кажется, возвращает только те, которые связаны, а не те, которые не связаны.Мне нужно, чтобы вернуть полный список всех пользователей, но чтобы RelatedID возвращался как 0 или RelatedDataID.
UniqueID - это GUID.
Вот мой оператор TSQL.
ALTER PROCEDURE sp_Test
@CompanyID int,
@UniqueID varchar(36),
@PersonTypeID int
AS
BEGIN
SET NOCOUNT ON;
SELECT
First_Name + ' ' + Last_Name AS Full_Name,
ISNULL(RelatedDataID,0) AS RelatedDataID
FROM
Users
LEFT JOIN
Related_Data
ON
Users.UniqueID = Related_Data.UniqueID
WHERE
Users.PersonTypeID = @PersonTypeID
AND
Users.Deleted = '0'
AND
((ISNULL(Related_Data.UniqueID,'') = '') OR (Related_Data.UniqueID = @UniqueID OR Related_Data.Related_UniqueID = @UniqueID))