"अधिकांश बच्चे नोड" से मुझे उम्मीद है कि आप पेड़ के पत्ते के नोड्स का मतलब है। आप CONNECT_BY_ISLEAF
. के साथ लीफ नोड्स निर्धारित कर सकते हैं एक पदानुक्रम का छद्म स्तंभ (CONNECT BY
) क्वेरी।
तालिका में आपके नमूना डेटा को देखते हुए निम्नलिखित क्वेरी वांछित परिणाम देती है:
select connect_by_root id id
, parent_did
from table1
where connect_by_isleaf = 1
connect by id = prior parent_did
start with id in ('a','b','c');
| ID | PARENT_DID |
|----|------------|
| a | f |
| a | g |
| a | h |
| b | f |
| b | g |
| b | h |
| c | f |
अपने अपडेट किए गए डेटा और आवश्यकताओं को ध्यान में रखते हुए इस तथ्य को शामिल करते हुए कि एक दूसरी तालिका में ए, बी, और सी को प्रारंभ शर्तों के रूप में रखा गया है:
select connect_by_root parent_id parent_id
, id
from table1
where connect_by_isleaf = 1
connect by prior id = parent_id
start with parent_id in (select id from table2)
| PARENT_ID | ID |
|-----------|----|
| a | f |
| a | g |
| a | h |
| b | f |
| b | g |
| b | h |
| c | f |
SQL Fiddle आप श्रेणीबद्ध प्रश्नों के बारे में दस्तावेज़ीकरण से अधिक जान सकते हैं। ।