Với MySQL, cách dễ nhất mà tôi thực hiện là lưu trữ tất cả các đường dẫn trong cây, tạo đóng bắc cầu .
table_children
parent child
0 0
1 1
2 2
3 3
4 4
0 1
0 2
0 3
0 4
1 2
1 3
1 4
3 4
Bây giờ bạn có thể truy vấn nó như vậy:
SELECT t.*
FROM table_children c
JOIN table t ON c.child = t.id
WHERE c.parent = 0;
Xem thêm:
- Cách hiệu quả / thanh lịch nhất để phân tích cú pháp một bảng phẳng thành một cái cây là gì?
- Mô hình cho Dữ liệu phân cấp với SQL và PHP
- Phản luận SQL:Tránh Cạm bẫy của Lập trình Cơ sở dữ liệu