Các hệ quản trị cơ sở dữ liệu quan hệ dựa trên SQL chỉ phù hợp một phần cho các truy vấn phân cấp hoặc đệ quy. Các hệ thống khác như ArangoDB phù hợp hơn cho việc này (đã có một bài thuyết trình tuyệt vời về vấn đề này tại GOTO 2016 ). Tuy nhiên, cũng có thể tạo các truy vấn đệ quy trong SQL bằng cách sử dụng Common Table Expressions (CTT) , cho phép bạn, ví dụ, truy vấn các bảng cha/con truyền thống để tìm tất cả các tổ tiên và hậu duệ.
Trong PostgreSQL, nó trông như thế này, chẳng hạn:
0672c4761d202a35a9059fa137ace7c3
Nếu bạn muốn lấy tất cả các con của một item_id nhất định, bạn sử dụng Biểu thức bảng chung:
0672c4761d202a35a9059fa137ace7c3
Truy vấn cha mẹ cũng không có vấn đề gì:
0672c4761d202a35a9059fa137ace7c3