MySQLで「再帰的」結合を行う実際の方法は(少なくとも私が知っている限りでは)ありません。このようなテーブル構造がある場合、私が知っている最善の解決策は、ストアドプロシージャを使用して、関連する行をループして「収集」したり、「パス」を作成したりすることです。残念ながら、ストアドプロシージャの結果に参加することはできません。そのため、通常は、プロシージャの実行後に使用するために、そのデータを所定の一時テーブルにドロップする必要があります。
または、コード内の再帰テーブルを分析して現在の「深さ」を判断し、プログラムでクエリを作成することもできます。