No hay una forma real (al menos que yo sepa) de hacer una unión "recursiva" en MySQL. Si tiene una estructura de tabla de este tipo, la mejor solución que conozco es usar procedimientos almacenados para recorrer y "recopilar" filas relacionadas y/o construir "caminos"; desafortunadamente, no puede unirse a los resultados de un procedimiento almacenado, por lo que generalmente significa que debe colocar esos datos en una tabla temporal predeterminada para usar después de que se haya ejecutado el procedimiento.
Alternativamente, puede analizar la tabla recursiva en el código para determinar su "profundidad" actual para componer la consulta mediante programación.