Jak znaleźć ścieżkę hierarchii dla reprezentacji drzewa

Mam wygląd hierarchii drzewa, który jest wbudowany w tabelę, przy czym parent_id wskazuje na poprzedni węzeł główny.

Iteruję przez wszystkie węzły root (root1, root2) i ustawiam ścieżkę do root1 lub root1 / child1 dla root1 i child1. Aby znaleźć ścieżkę dla child1, będę musiał wykonać co najmniej 2 połączenia, aby utworzyć ścieżkę. Czy istnieje skuteczny sposób na wypełnienie ścieżki, ponieważ mamy do czynienia z bardzo dużą liczbą węzłów root i dzieci, które są zagnieżdżone na głębokości 5-7 poziomów.

create table foo (id, name, parent_id, path)
insert into foo (1, "root1', null, null)
insert into foo (2, "child1', 1, null)

root1 (path = null)
  child1 (path = root1)
    subchild1 (path = root1/child1)

root2
   child2
     subchild2

questionAnswers(5)

yourAnswerToTheQuestion