У меня проблема с иерархией.У меня есть иерархия с четырьмя уровнями, и мне нужно перевести пользователя с нижнего уровня, чтобы увидеть все верхние уровни. Я могу перевести иерархию с нижнего уровня на верхний, как вы можете видеть:
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), это дает мне правильные данные.