Récursivité en SQL

Les systèmes de gestion de bases de données relationnelles basés sur SQL ne sont que partiellement adaptés aux requêtes hiérarchiques ou récursives. D'autres systèmes, comme ArangoDB, sont plus performants dans ce domaine (une excellente présentation à ce sujet a eu lieu lors de la conférence GOTO 2016 ). Il est toutefois possible de créer des requêtes récursives en SQL à l'aide des expressions de table communes (CTE) , ce qui permet, par exemple, d'interroger des tables parent/enfant classiques pour obtenir tous leurs ancêtres et descendants.


Dans PostgreSQL, cela ressemble à ceci, par exemple:

0672c4761d202a35a9059fa137ace7c3

Si vous souhaitez obtenir tous les enfants d'un certain item_id, vous utilisez les expressions de table communes:

0672c4761d202a35a9059fa137ace7c3

Interroger les parents n'est pas non plus un problème:

0672c4761d202a35a9059fa137ace7c3

Retour