sql >> Databasteknik >  >> RDS >> Oracle

oracle connect av flera föräldrar

Tja, ditt problem verkar vara att du använder en icke-normaliserad tabelldesign. Om ett givet ID har alltid samma ParentID , det förhållandet bör inte anges separat i alla dessa rader.

En bättre design skulle vara att ha en enda tabell som visar de överordnade underordnade relationerna, med ID som en primärnyckel och en andra tabell som visar mappningarna av ID till ObjectID , där jag antar att båda kolumnerna tillsammans skulle utgöra primärnyckeln. Sedan skulle du tillämpa din hierarkiska fråga mot den första tabellen och sammanfoga resultaten av den till den andra tabellen för att få de relevanta objekten för varje rad.

Du kan emulera detta med din nuvarande tabellstruktur ...

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. Hur frågar man efter datumformatet ÅÅÅÅ-MM-dd HH-MM-ss?

  2. Hur man itererar genom PostgreSQL jsonb-matrisvärden i syfte att matcha i en fråga

  3. Dela (mysql) databas mellan appar Django med databasroutrar

  4. Rails räckvidd för IS NOT NULL och är inte tom/tom?