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

mysql para obter profundidade de registro, contar registros pai e ancestral


Se você estiver fazendo muitas consultas como essa, poderá descobrir que um modelo de conjunto aninhado é mais apropriado do que a lista de adjacências sobre a qual está perguntando. Há uma boa discussão de ambos os modelos aqui .

De qualquer forma, para fazer o que você está pedindo com uma lista de adjacências, você está analisando a recursão na camada do aplicativo ou armazenando o nível como uma 3ª coluna.

ETA:se sua contagem de níveis não for muito alta, você pode fazer isso com auto-junções:

por exemplo. nós com 2 ancestrais:
SELECT t1.node 
FROM mytable AS t1
JOIN mytable AS t2 ON t1.parent = t2.node
JOIN mytable AS t3 ON t2.parent = t3.node
WHERE t3.parent IS NULL;