PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

ट्री स्ट्रक्चर वाले डेटाबेस को स्टोर और क्वेरी कैसे करें

किसी भी डेटाबेस में, यदि "पेड़" के प्रत्येक सदस्य में समान गुण होते हैं, तो स्व-संदर्भ तालिका का उपयोग करना सबसे अच्छा है, खासकर यदि प्रत्येक पेड़ में 1 और केवल 1 प्रत्यक्ष माता-पिता हों।

आईई.

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

आमतौर पर बिग बॉस के पास NULL Boss_hr_id होगा

ऐसी संरचना को क्वेरी करने के लिए, पोस्टग्रेज़ में, आप CTEs ("रिकर्सिव" स्टेटमेंट के साथ)

. का उपयोग कर सकते हैं

उपरोक्त तालिका के लिए, इस तरह की एक क्वेरी काम करेगी:

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. पीजी-वादा का उपयोग करके विशिष्ट पोस्टग्रेस्क्ल क्वेरी लॉग करें

  2. मैं postgresql फ़ंक्शन का उपयोग करके अलग-अलग तालिका नाम से डेटा प्राप्त करना चाहता हूं

  3. स्तंभ नाम END के साथ END पर या उसके निकट सिंटैक्स त्रुटि

  4. PostgreSQL - लेनदेन ब्लॉक के बाहर कोड से VACUUM कैसे चलाएं?

  5. फ़ील्ड गिनने के लिए नेस्टेड SQL क्वेरी को पोस्टग्रेज़ करता है