Вы можете легко сделать это в других базах данных с помощью рекурсивного запроса (YMMV на производительность).
Другой способ сделать это - сохранить два дополнительных бита данных, левый и правый стоимость. Левое и правое значение получены из предварительного предпросмотра древовидной структуры, которую вы представляете.
Это известно как измененный обход дерева предзаказов и позволяет запускать простой запрос, чтобы получить все родительские значения в один раз. Он также имеет название «вложенный набор».
Вы можете написать свой запрос следующим образом, чтобы получить зарплату сотрудника больше, чем зарплата менеджера.
Вы должны присоединиться к сотруднику и работать два раза, один для сотрудника и один для менеджера.
SELECT e.*,m.Ename as manager,
FROM Employee e
INNER JOIN Manages rel on e.ename = rel.empname
INNER JOIN Employee m on m.ename = rel.manager_name
INNER JOIN Works we on we.ename=e.empname
INNER JOIN Works wm on wm.ename=m.empname
WHERE we.salary > wm.salary