PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Bagaimana cara menyimpan dan mengkueri database dengan struktur pohon

Dalam database apa pun, jika setiap anggota "pohon" memiliki properti yang sama, sebaiknya gunakan tabel referensi mandiri, terutama jika setiap pohon memiliki 1 dan hanya 1 induk langsung.

YAITU.

HR
------
ID
first_name
last_name
department_id
sal
boss_hr_id (referneces HR.ID)

Biasanya bos besar akan memiliki NULL boss_hr_id

Untuk menanyakan struktur seperti itu, di postgres, Anda dapat menggunakan CTE (pernyataan "dengan rekursif")

Untuk tabel di atas, kueri seperti ini akan berfungsi:

with recursive ret(id, first_name, last_name, dept_id,boss_hr_id) as
    (
      select * from hr
      where hr.id=**ID_OF_PERSON_YOU_ARE_QUERYING_STRUCTURE**
      union
      select hr.id, hr.first_name, hr.last_name,hr.dept_id,hr.boss_hr_id, lev+1 from hr
      inner join ret on ret.boss_hr_id=hr.hr_id
    ) 
    select * from ret
) 



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara menyimpan file pdf di database postgresql menggunakan servlet?

  2. PostgresSQL Nested Loops - Kapan perencana memutuskan untuk menggunakan Nested Loop saat melakukan INNER JOIN?

  3. Mencari substring di PostgreSQL

  4. Cara Mengaktifkan SSL di PostgreSQL

  5. Tampilan PostgreSQL:Merujuk satu bidang terhitung di bidang terhitung lainnya