Il n'y a pas vraiment de moyen (du moins à ma connaissance) de faire une jointure "récursive" dans MySQL. Si vous avez une telle structure de table, la meilleure solution que je connaisse consiste à utiliser des procédures stockées pour parcourir et "collecter" les lignes associées et/ou créer des "chemins" ; malheureusement, vous ne pouvez pas joindre les résultats d'une procédure stockée, ce qui signifie généralement qu'elle dépose ces données dans une table temporaire prédéterminée à utiliser après l'exécution de la procédure.
Alternativement, vous pouvez analyser la table récursive dans le code pour déterminer sa "profondeur" actuelle afin de composer la requête par programmation.