Tengo una tabla que define una relación padre-hijo entre los nodos:¿Cómo encontrar todos los nodos en un subárbol en una consulta SQL recursiva?
CREATE TABLE node ( ' pseudo code alert
id INTEGER PRIMARY KEY,
parentID INTEGER, ' should be a valid id.
)
Si parentID
siempre apunta a un nodo existente válida, entonces esto va a definir de forma natural una estructura de árbol.
Si el parentID
es , podemos suponer que el nodo es un nodo raíz.
¿Cómo I:
- Buscar todos los nodos que son decendientes de un nodo dado?
- ¿Encontrar todos los nodos bajo un nodo dado a una profundidad específica?
Me gustaría hacer cada uno de estos como un solo SQL (supongo que sería necesariamente recursivo) o dos consultas mutuamente recursivas.
Estoy haciendo esto en un contexto ODBC, por lo que no puedo confiar en las características específicas del proveedor.
Editar
- No hay tablas se escriben sin embargo, por lo que añadir columnas adicionales/mesas es perfectamente aceptable.
- El árbol será potencialmente actualizado y agregado con bastante frecuencia; las estructuras/tablas/columnas de datos auxiliares serían posibles, aunque deben mantenerse actualizadas. Si tiene algún libro mágico al que recurra para este tipo de consulta, me gustaría saberlo.
Muchas gracias.
Parece que Oracle maltrató los enlaces del sitio web de MySQL, ¿es posible encontrar el tutorial ahora de alguna manera? – martinthenext