Drandrão Postado Dezembro 21, 2011 Denunciar Share Postado Dezembro 21, 2011 Estou com o seguinte problema....tenho uma tabela desse tipo:PAI | FILHO | NOME001 002 Teste001 003 Teste1001 001 Teste2010 001 Teste3015 015 Teste4002 005 Teste5 Aí gostaria de dar um select, passando o pai '010' e obter por exemplo os filhos teste, teste1 e teste2. E assim por diante, por exemplo se o teste2 tivesse filho, ele mostraria tbém....Achei algumas buscas feitas más não consegui adaptar... Desde já agradeço a ajudaEvandro Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Drandrão Postado Dezembro 21, 2011 Autor Denunciar Share Postado Dezembro 21, 2011 Estou com o seguinte problema....tenho uma tabela desse tipo:PAI | FILHO | NOME001 002 Teste001 003 Teste1001 001 Teste2010 001 Teste3015 015 Teste4002 005 Teste5 Aí gostaria de dar um select, passando o pai '010' e obter por exemplo os filhos teste, teste1 e teste2. E assim por diante, por exemplo se o teste2 tivesse filho, ele mostraria tbém....Achei algumas buscas feitas más não consegui adaptar... Desde já agradeço a ajudaEvandroFiz da seguinte formaWITH ConsultaRecursiva AS (SELECT Pai.PAI, Pai.FILHO, Pai.NOMEFROM TABELA PaiWHERE (Pai.PAI = '001')UNION ALLSELECT C.FILHO, C.PAI, C.NOMEFROM TABELA CINNER JOIN ConsultaRecursiva CR ON (CR.FILHO = C.PAI))SELECT * FROM ConsultaRecursiva OPTION (maxrecursion 32767) Más dá o seguinte erro:The statement terminated. The maximum recursion 32767 has been exhausted before statement completion(1,671 sec) Alguém sabe o que pode ser??? ObrigadoEvandro Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Abel Bueno Postado Março 7, 2012 Denunciar Share Postado Março 7, 2012 Provavelmente porque em Teste 2 e Teste 5 pai e filho têm o mesmo código.Qual é a chave primária dessa tabela ?Não tem sentido 1 filho ter dois pais. (Como Teste 2 e Teste 3) Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 fulvio Postado Março 7, 2012 Denunciar Share Postado Março 7, 2012 Bom dia Drandrão, O erro está ocorrendo porque o sql está entrando em uma recursividade infinita. Se quiser trazer os resultados navegando em uma árvore, terá que utilizar um loop. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Drandrão
Estou com o seguinte problema....
tenho uma tabela desse tipo:
PAI | FILHO | NOME
001 002 Teste
001 003 Teste1
001 001 Teste2
010 001 Teste3
015 015 Teste4
002 005 Teste5
Aí gostaria de dar um select, passando o pai '010' e obter por exemplo os filhos teste, teste1 e teste2. E assim por diante, por exemplo se o teste2 tivesse filho, ele mostraria tbém....
Achei algumas buscas feitas más não consegui adaptar...
Desde já agradeço a ajuda
Evandro
Link para o comentário
Compartilhar em outros sites
3 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.