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