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

एकाधिक माता-पिता द्वारा ओरेकल कनेक्ट

ठीक है, आपकी समस्या यह प्रतीत होती है कि आप एक गैर-सामान्यीकृत तालिका डिज़ाइन का उपयोग कर रहे हैं। अगर दिया गया ID हमेशा एक ही ParentID होता है , उस संबंध को इन सभी पंक्तियों में अलग से इंगित नहीं किया जाना चाहिए।

एक बेहतर डिज़ाइन यह होगा कि माता-पिता के बच्चे के रिश्तों को दिखाने वाली एक एकल तालिका हो, जिसमें ID . हो प्राथमिक कुंजी के रूप में, और दूसरी तालिका ID . की मैपिंग दिखाती है करने के लिए ObjectID , जहां मुझे लगता है कि दोनों कॉलम एक साथ प्राथमिक कुंजी शामिल करेंगे। फिर आप अपनी पदानुक्रमित क्वेरी को पहली तालिका के विरुद्ध लागू करेंगे, और प्रत्येक पंक्ति के लिए प्रासंगिक ऑब्जेक्ट प्राप्त करने के लिए उसके परिणामों को दूसरी तालिका में शामिल करेंगे।

आप इसे अपनी वर्तमान तालिका संरचना के साथ अनुकरण कर सकते हैं ...

with parent_child as (select distinct id, parent_id from table),
     tree as (select id, parent_id from parent_child
               start with parent_id = 0
               connect by prior id = parent_id )
select id, table.parent_id, table.object_id
  from tree join table using (id)


  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. Oracle SQL का उपयोग करके पार्स Json - JSON_TABLE

  3. पीएल/एसक्यूएल का उपयोग करके पीडीएफ रिपोर्ट कैसे बनाएं

  4. डिकोड उपनाम पर ORA-00904 अमान्य पहचानकर्ता

  5. ऑरैकल में सिंगल सेलेक्ट स्टेटमेंट में एक से अधिक पार्टीशन कैसे शामिल करें?