Dalam cara Anda menyimpan pohon sekarang, tidak mungkin mendapatkan seluruh pohon dalam satu kueri SQL murni. Anda perlu menulis perulangan dalam beberapa bahasa lain (C#, prosedur tersimpan yang mendukung perulangan, ...) untuk mengambil pohonnya.
Ini adalah artikel bagus yang menjelaskan cara bekerja dengan cara Anda menyimpan pohon (termasuk mengambil pohon dan menghapus item dari pohon).
Yang lebih menarik lagi, artikel tersebut juga menjelaskan cara menyimpan pohon di tabel database yang bisa memungkinkan pengambilan seluruh pohon dalam satu kueri. Ini disebut praorder tree traversal . Anda dapat mencarinya untuk informasi lebih lanjut. Saya telah menemukan implementasi C# . Ini melibatkan lebih banyak logika daripada yang Anda gunakan sekarang, tetapi lebih berkinerja untuk semua kecuali pohon terkecil.