Det finns inget riktigt sätt (åtminstone jag känner till) att göra en "rekursiv" join i MySQL. Om du har en sådan tabellstruktur är den bästa lösningen jag känner till att använda lagrade procedurer för att gå igenom och "samla" relaterade rader och/eller bygga "sökvägar"; tyvärr kan du inte gå med i resultaten av en lagrad procedur, så det betyder vanligtvis att den släpper den data i en förutbestämd temporär tabell som ska användas efter att proceduren har körts.
Alternativt kan du analysera den rekursiva tabellen i kod för att bestämma dess nuvarande "djup" för att komponera frågan programmatiskt.