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

एक तालिका में संग्रहीत एन-स्तरीय अभिभावक-बाल संबंध प्राप्त करने के लिए पोस्टग्रेस्क्ल क्वेरी

Postgres के साथ आप एक पुनरावर्ती सामान्य तालिका अभिव्यक्ति का उपयोग कर सकते हैं:

with recursive rel_tree as (
   select rel_id, rel_name, rel_parent, 1 as level, array[rel_id] as path_info
   from relations 
   where rel_parent is null
   union all
   select c.rel_id, rpad(' ', p.level * 2) || c.rel_name, c.rel_parent, p.level + 1, p.path_info||c.rel_id
   from relations c
     join rel_tree p on c.rel_parent = p.rel_id
)
select rel_id, rel_name
from rel_tree
order by path_info;

SQLFiddle आपके उदाहरण के आधार पर:http://sqlfiddle.com/#!11/59319/19

(मैंने इंडेंट के लिए रिक्त स्थान को अंडरस्कोर से बदल दिया क्योंकि SQLFiddle रिक्त स्थान को सही ढंग से प्रदर्शित नहीं करता है)




  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. पोस्टग्रेज ट्रिगर फंक्शन

  4. कुबेरनेट्स/मिनीक्यूब के साथ स्थानीय विकास के दौरान, मुझे लोकलहोस्ट पर चल रहे पोस्टग्रेज डेटाबेस से कैसे जुड़ना चाहिए?

  5. PostgreSQL में पदानुक्रमित योग