Il existe deux méthodes de base pour ce faire :les listes de contiguïté et les listes imbriquées. Jetez un œil à Gestion des données hiérarchiques dans MySQL .
Ce que vous avez est une liste de contiguïté. Non, il n'y a aucun moyen de saisir de manière récursive tous les descendants avec une seule instruction SQL. Si possible, saisissez-les tous et mappez-les tous dans le code.
Les ensembles imbriqués peuvent faire ce que vous voulez, mais j'ai tendance à l'éviter car le coût d'insertion d'un enregistrement est élevé et sujet aux erreurs.