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_id
antrian
- LANGKAH02) Dequeue yang berikutnya
parent_id
sebagai arus
- STEP03) Enqueue semua
id
nilai 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
id
antrian
- LANGKAH02) Dequeue yang berikutnya
id
sebagai arus
- LANGKAH03) Enqueue
parent_id
nilai 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 !!!