Welnu, uw probleem lijkt te zijn dat u een niet-genormaliseerd tafelontwerp gebruikt. Als een gegeven ID
heeft altijd dezelfde ParentID
, moet die relatie niet apart in al deze rijen worden aangegeven.
Een beter ontwerp zou zijn om een enkele tabel te hebben met de ouder-kindrelaties, met ID
als primaire sleutel, en een tweede tabel met de toewijzingen van ID
naar ObjectID
, waarbij ik veronderstel dat beide kolommen samen de primaire sleutel zouden vormen. Vervolgens zou u uw hiërarchische zoekopdracht toepassen op de eerste tabel en de resultaten daarvan koppelen aan de andere tabel om de relevante objecten voor elke rij te krijgen.
U kunt dit emuleren met uw huidige tabelstructuur ...
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)