Puisque vous avez 4 niveaux finis, vous ne devriez pas avoir besoin de récursivité (bien qu'il soit pratique de pouvoir utiliser par exemple des CTE MS SQL).
Quelque chose comme :
SELECT
t4.uid as child,
--t3.uid as parent,
--t2.uid as grand_parent,
--t1.uid as great_grand_parent,
t1.parentid as great_great_grand_parent
FROM
your_table_name t1
inner join your_table_name t2
on t2.parentid = t1.uid
inner join your_table_name t3
on t3.parentid = t2.uid
inner join your_table_name t4
on t4.parentid = t3.uin
where
t4.uid = '10007' -- your start node.
Si vous avez besoin de le faire pour plusieurs nœuds, vous devez le joindre à quelque chose qui sélectionne vos nœuds de départ, ou par exemple remplacer le WHERE t4.uid = '10007'
ci-dessus la clause doit être WHERE t4.uid IN (SELECT DISTINCT uid FROM your_table_name)
Cela a été fait à main levée, donc désolé pour les fautes de frappe.