Иерархия запросов - PullRequest
       18

Иерархия запросов

0 голосов
/ 07 июня 2018

У меня проблема с иерархией.У меня есть иерархия с четырьмя уровнями, и мне нужно перевести пользователя с нижнего уровня, чтобы увидеть все верхние уровни. Я могу перевести иерархию с нижнего уровня на верхний, как вы можете видеть:

select * from test1 


    **username**        **NAME**            **VALUE**
 1  e.gkioka            TEAM LEADER     x.xrysanthakopo
 2  e.gkioka            COACH           e.gkioka
 3  e.xathigianni       AGENT           e.xathigianni
 4  e.xathigianni       COACH           e.gkioka
 5  t.argentis          SUPERVISOR      t.argentis
 6  x.xrysanthakopo     SUPERVISOR      t.argentis
 6  x.xrysanthakopo     TEAM LEADER     x.xrysanthakopo

здесь имя пользователя и роли (АГЕНТ - это низкий и идет COACH, TEAM_LEADER, SUPERVISOR (верхний уровень))

это запрос для получения иерархии от низкого до верхнего

 select t1.username as AGENT,t1.value as COACH ,t2.VALUE as TEAM_LEADER,t3.VALUE as SUPERVISOR
 from test1 t1,test1 t2, test1 t3
 where t1.username='e.xathigianni'
 and (t2.USERNAME=t1.VALUE and t1.name='COACH' and t2.name='TEAM LEADER') 
 and t3.USERNAME=t2.VALUE and t2.name='TEAM LEADER' and t3.name='SUPERVISOR'

это дает мне правильную иерархию

        AGENT           COACH           TEAM_LEADER         SUPERVISOR
 - 1  e.xathigianni     e.gkioka        x.xrysanthakopo     t.argentis

Моя проблема в том, что когда я ставлю второй уровень (например, gocioka (COACH)) или третий уровень (x.xrysanthakopo TEAM_LEADER), это дает мне правильные данные.

...