Seleccione la declaración para devolver padre e hijos infinitos

Dé la estructura de la tabla, como algo así como:

ID      ParentID      Name
1       NULL          A root
2       NULL          Another root
3       1             Child of 1
4       3                Grandchild of 1
5       4                   Great grandchild of 1
6       1             Child of 1
7       NULL          Another root
8       7             Child of 6

Estoy buscando una solución elegante (si es posible) para una sola declaración / función SQL que devuelva todos los datos en la tabla cuando se le da unID = 1

Entonces mi resultado se vería así:

ID      ParentID      Name
1       NULL          A root
3       1             Child of 1
4       3                Grandchild of 1
5       4                   Great grandchild of 1
6       1             Child of 1

He visto preguntas similares sobre SO, aunque en su mayor parte solo parecen estar mirando un número determinado de niveles.

Esta estructura puede, en última instancia, ser ilimitada: carpeta con hijos, con muchos otros hijos

es posible? Si es así, ¿cómo lo lograría?

Respuestas a la pregunta(2)

Su respuesta a la pregunta