SQL'de özyineleme

SQL tabanlı ilişkisel veritabanı yönetim sistemleri yalnızca hiyerarşik veya yinelemeli sorgular için koşullu olarak uygundur. ArangoDB gibi diğer sistemler burada daha iyidir ( GOTO 2016'da bunun hakkında harika bir konuşma vardı). Ancak ortak tablo ifadelerini kullanarak SQL'de özyinelemeli sorgular oluşturabilir ve böylece tüm atalar ve torunları için klasik üst / alt tabloları sorgulayabilirsiniz.


PostgreSQL'de şöyle görünür:

0672c4761d202a35a9059fa137ace7c3

Belirli bir item_id öğesinin tüm alt öğelerini almak istiyorsanız, ortak tablo ifadelerini kullanın:

0672c4761d202a35a9059fa137ace7c3

Ebeveynleri sorgulamak da sorun değil:

0672c4761d202a35a9059fa137ace7c3

Geri