sql >> Base de Datos >  >> RDS >> Mysql

mysql para obtener la profundidad del registro, contar los registros de padres y antepasados

Si está realizando muchas consultas como esta, es posible que un modelo de conjunto anidado sea más apropiado que la lista de adyacencia sobre la que está preguntando. Hay una buena discusión de ambos modelos aquí .

En cualquier caso, para hacer lo que está pidiendo con una lista de adyacencia, está buscando la recursividad en la capa de la aplicación o almacenando el nivel como una tercera columna.

ETA:si su recuento de niveles no es muy alto, puede hacerlo con uniones automáticas:

p.ej. nodos con 2 ancestros:

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;