SQLでの再帰

SQLに基づくリレーショナルデータベース管理システムは、条件付きで階層型クエリまたは再帰的クエリにのみ適しています。 ArangoDBなどの他のシステムここで優れています(これについてはGOTO 2016で素晴らしい話がありました)。 ただし、一般的なテーブル式を使用してSQLで再帰クエリを生成し、すべての祖先と子孫のクラシックな親/子テーブルをクエリすることもできます。


PostgreSQLでは、たとえば次のようになります:

0672c4761d202a35a9059fa137ace7c3

特定のitem_idのすべての子を取得する場合は、共通テーブル式を使用します:

0672c4761d202a35a9059fa137ace7c3

親に問い合わせても問題ありません:

0672c4761d202a35a9059fa137ace7c3

バック