PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Как да покажа дядо родител в sql йерархията?

Вие сте на прав път. Обмислете използването на това:

with recursive tree as (
  select id, 
         parent_id, 
         array[id] as all_parents,
         name as parent_name
  from hierarchy
  where parent_id = 0
  union all 
  select c.id, 
         p.parent_id,
         p.all_parents,
         p.parent_name 
  from hierarchy c
     join tree p
      on c.parent_id = p.id 
     and c.id <> all (p.all_parents) 
)
select id, parent_id, parent_name
  from tree;

Демо




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Таблица за разделяне въз основа на първата буква на поле varchar

  2. Как точно работи кръгла функция в postgresql?

  3. Laravel 5.3 Eloquent транзакции и ограничения за външни ключове

  4. @BatchSize умна или глупава употреба?

  5. Обхват на релсите - къде в точни съвпадения