Op SQL gebaseerde relationele databasebeheersystemen zijn alleen voorwaardelijk geschikt voor hiërarchische of recursieve zoekopdrachten. Andere systemen zoals ArangoDB zijn hier beter (er was een goed gesprek hierover op GOTO 2016 ). U kunt ook recursieve query's in SQL maken met behulp van algemene tabelexpressies en zo klassieke bovenliggende / onderliggende tabellen opvragen voor alle voorouders en afstammelingen.
In PostgreSQL ziet het er bijvoorbeeld zo uit:
0672c4761d202a35a9059fa137ace7c3
Als je alle onderliggende items van een bepaalde item_id wilt hebben, gebruik je de Common Table Expressions:
0672c4761d202a35a9059fa137ace7c3
Ook navragen bij de ouders is geen probleem:
0672c4761d202a35a9059fa137ace7c3