sql >> Database teknologi >  >> RDS >> Oracle

oracle connect af flere forældre

Nå, dit problem ser ud til at være, at du bruger et ikke-normaliseret tabeldesign. Hvis et givet ID har altid det samme ParentID , skal denne relation ikke angives separat i alle disse rækker.

Et bedre design ville være at have en enkelt tabel, der viser de overordnede underordnede relationer, med ID som en primær nøgle og en anden tabel, der viser tilknytningerne af ID til ObjectID , hvor jeg antager, at begge kolonner tilsammen ville udgøre den primære nøgle. Derefter vil du anvende din hierarkiske forespørgsel mod den første tabel og forbinde resultaterne af den med den anden tabel for at få de relevante objekter for hver række.

Du kan efterligne dette med din nuværende tabelstruktur ...

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. 4 måder at erstatte NULL med en anden værdi i MySQL

  2. 2 måder at få dagen fra en date i Oracle

  3. Createuser:kunne ikke oprette forbindelse til database postgres:FATAL:rolle tom eksisterer ikke

  4. fejl:'Ugyldigt parameternummer:parameter blev ikke defineret' ved brug af et array til INSERT i PDO