Estoy pensando que la respuesta es no, pero me encantaría que alguien tuviera alguna idea de cómo rastrear una estructura de árbol a cualquier profundidad en SQL (MySQL), pero con una sola consulta¿Es posible consultar una tabla de estructura de árbol en MySQL en una sola consulta, a cualquier profundidad?
Más específicamente, dada una tabla estructurada por árbol (id, data, data, parent_id) y una fila en la tabla, es posible obtener todos los descendientes (child/grandchild/etc), o para el caso todos los antepasados (parent/grandparent/etc.) sin saber cuán abajo o hacia abajo funcionará, utilizando una única consulta.
¿O está usando algún tipo de recurrencia, donde sigo consultando más profundamente hasta que no hay nuevos resultados?
Específicamente, estoy usando Ruby and Rails, pero supongo que no es muy relevante.
PostgreSQL permite el uso directo de consultas recursivas (= iterativas), pero hasta donde sé MySQL no lo hace. He utilizado con éxito esta técnica antes en Postgres como un sustituto del enfoque de conjuntos anidados. http://www.postgresql.org/docs/8.4/static/queries-with.html – wberry