Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Consulta recursiva do MySQL?


O MySQL não suporta consultas recursivas.

Eu sugiro que você veja a apresentação de Bill Karwin onde ele compara quatro modelos diferentes para armazenar dados hierárquicos e analisa seus prós e contras:
  • Lista de adjacências
  • Enumeração de caminho
  • Conjuntos aninhados
  • Tabela de fechamento

O slide 48 mostra a dificuldade relativa de certos tipos de consultas com cada um dos modelos. Pela sua pergunta, parece que você está mais interessado em "Subárvore de consulta", para a qual a lista de adjacências (o modelo que você está usando no momento) tem o pior desempenho dos quatro.

Alternativamente, se você quiser apenas selecionar a árvore inteira, como em todos os dados da tabela, você pode usar a consulta simples SELECT * FROM yourtable e reconstruir a estrutura de árvore no cliente.