Ada dua metode dasar untuk melakukan ini:daftar adjacency dan daftar bersarang. Lihat Mengelola Data Hirarki di MySQL .
Apa yang Anda miliki adalah daftar adjacency. Tidak, tidak ada cara untuk mengambil semua turunan secara rekursif dengan satu pernyataan SQL. Jika memungkinkan, ambil semuanya dan petakan semuanya dalam kode.
Kumpulan bersarang dapat melakukan apa yang Anda inginkan, tetapi saya cenderung menghindarinya karena biaya memasukkan catatan tinggi dan rawan kesalahan.