Я пытаюсь реализовать рекурсию по запросу, используя Common Table Expression.Однако я не очень знаком с этим.Сценарий включает в себя родительские и дочерние случаи, когда Родитель при входе в систему может видеть свои собственные, а также все дочерние случаи и так далее, и так далее.Но я не могу сделать это с помощью выражения cte.
У меня есть таблица пользователей и таблица отношений, которая содержит как основного, так и дополнительного пользователя.Основной пользователь - родительский, а дополнительный - дочерний.
Ниже приведен мой запрос.
select *
from dbo.[Case] c
left join dbo.[User] u on c.AssignedTo = u.UserId
left join dbo.[User] uu on c.AssignedTo = uu.UserId
where uu.UserId in (select SecondaryUser from dbo.[Relations]
where PrimaryUser = 'f422233f-9c70-4052-81a5-e2525707df0b')
or u.UserId = 'f422233f-9c70-4052-81a5-e2525707df0b'
Но приведенный выше запрос возвращает только один родительский и один дочерний регистр.И я хочу, чтобы несколько родителей и их дочерний регистр использовали общее табличное выражение.
При условии, что некоторые пользователи выглядят следующим образом
Id Name Email
001 Salar salar@gmail.com
002 Ather ather@gmail.com
003 John john@gmail.com
И в таблице RelationShip
Id PrimaryUser SecondaryUser
101 001 002
001 002 003
И их назначенные случаи
Id CaseTitle CaseDescription AssingedTo
101 Case 1 First case 001
102 Case 2 Second case 002
103 Case 3 Third case 003
Поэтому, когда я вошел в систему с идентификатором 001, я должен увидеть все три случая, а когда я вошел с помощью 002, я должен увидеть последние два случая.