سیستمهای مدیریت پایگاه داده رابطهای مبتنی بر SQL فقط تا حدی برای پرسوجوهای سلسله مراتبی یا بازگشتی مناسب هستند. سیستمهای دیگری مانند ArangoDB برای این کار مناسبتر هستند (در GOTO 2016 صحبتهای خوبی در این مورد وجود داشت). با این حال، میتوان با استفاده از عبارات جدول مشترک ، پرسوجوهای بازگشتی را در SQL ایجاد کرد که به شما امکان میدهد، به عنوان مثال، از جداول والد/فرزند کلاسیک برای همه اجداد و فرزندان پرسوجو کنید.
به عنوان مثال در PostgreSQL اینگونه به نظر می رسد:
0672c4761d202a35a9059fa137ace7c3/ca9b571d40544dcd8e0afc989c89c49f8b1f3251
اگر می خواهید همه کودکان یک آیتم خاص را تهیه کنید ، از عبارت های جدول مشترک استفاده می کنید:
0672c4761d202a35a9059fa137ace7c3/ca9b571d40544dcd8e0afc989c89c49f8b1f3251
پرس و جو از والدین نیز مشکلی ندارد:
0672c4761d202a35a9059fa137ace7c3/ca9b571d40544dcd8e0afc989c89c49f8b1f3251