ठीक है, आपकी समस्या यह प्रतीत होती है कि आप एक गैर-सामान्यीकृत तालिका डिज़ाइन का उपयोग कर रहे हैं। अगर दिया गया 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)