Có hai phương pháp cơ bản để thực hiện việc này:danh sách kề và danh sách lồng nhau. Hãy xem Quản lý dữ liệu phân cấp trong MySQL .
Những gì bạn có là một danh sách gần kề. Không, không có cách nào để lấy một cách đệ quy tất cả các con với một câu lệnh SQL duy nhất. Nếu có thể, chỉ cần lấy tất cả chúng và ánh xạ tất cả chúng trong mã.
Các tập hợp lồng nhau có thể làm những gì bạn muốn nhưng tôi có xu hướng tránh điều đó vì chi phí chèn bản ghi cao và dễ xảy ra lỗi.