Instrução Select para retornar filhos pai e filhos infinitos

Dê a estrutura da tabela, como algo 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

Estou procurando uma solução elegante (se possível) para uma única instrução / função Sql que retornaria todos os dados da tabela quando receber umID = 1

Portanto, meu resultado seria algo como:

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

Eu já vi perguntas semelhantes no SO, embora na maioria das vezes elas pareçam estar apenas olhando para um determinado número de níveis.

Essa estrutura pode, em última análise, ser ilimitada - pasta com filhos, com muitos outros filhos

Isso é possível? Se sim, como eu faria isso?

questionAnswers(2)

yourAnswerToTheQuestion