MySQL tidak mendukung permintaan rekursif seperti yang Anda butuhkan.
Apa yang saya lakukan beberapa waktu lalu adalah menulis Stored Procedures yang menyediakan model untuk melakukannya.
Daripada menemukan kembali roda, saya akan memberi Anda tautan ke pos lama saya tentang ini:
Singkatnya, Stored Procedures yang saya buat melakukan preorder tree traversal menggunakan pemrosesan antrian
GetParentIDByID
GetAncestry
GetFamilyTree
Induk Semua Anak (seperti Prosedur Tersimpan GetFamilyTree)
- LANGKAH01) Mulailah dengan
parent_idantrian
- LANGKAH02) Dequeue yang berikutnya
parent_idsebagai arus
- STEP03) Enqueue semua
idnilai yang ada saat iniparent_id
- LANGKAH04) Cetak atau Kumpulkan Komentar
- LANGKAH05) Jika antrian tidak kosong, goto
STEP02
- LANGKAH06) Anda selesai !!!
Child to all Parent (seperti Prosedur yang Disimpan GetAncestry)
- LANGKAH01) Mulailah dengan
idantrian
- LANGKAH02) Dequeue yang berikutnya
idsebagai arus
- LANGKAH03) Enqueue
parent_idnilai arusid
- LANGKAH04) Cetak atau Kumpulkan Komentar
- LANGKAH05) Jika antrian tidak kosong, goto
STEP02
- LANGKAH06) Anda selesai !!!
Silakan lihat Prosedur Tersimpan di posting saya yang lain untuk melihat implementasinya.
Cobalah !!!