Announcement

Collapse
No announcement yet.

Alle Unter- und Unterunter-Objekte einer Hierachietabelle auflisten

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Alle Unter- und Unterunter-Objekte einer Hierachietabelle auflisten

    Hallo zusammen,

    ich stehe vor einem Problem und finde irgenwie nicht den richtigen Ansatz. Alles was ich finden konnte kann mir immer nur eine Ebene liefern...

    Also, ich habe folgende Datenstruktur:
    ID Ordner Parent
    1 Ebene1a <NULL>
    2 Ebene1b <NULL>
    3 Ebene2a 1
    4 Ebene3a 3
    5 Ebene4a 4
    6 Ebene2b 2

    Usw...

    Also aufgebaut wie ein Verzeichnisbaum wobei ein Ordnereintrag unter Parent immer die ID des Ordner darüber hat. Eigentlich simpel...

    Nun möchte ich aber eine Liste aus dieser Tabelle erzeugen die mir die ID von Ordner XY und alle seine Unter- und Unterunter-Ordner listet... soweit bis es keine Unterordner mehr gibt.

    Die JOIN-Varriante für eine Ebene kenne ich, ich möchte aber ALLE Unterebenen ausgeben. Denke das ist kompliziert, oder???

    Thx und Gruß, Mike

  • #2
    Du brauchst ein Statement, dass alle Elemente in der richtigen Reihenfolge wie im Baum liefert.
    Zusätzlich wäre ein Feld gut, um die Ebene/Tiefe und damit den Ausstiegspunkt zu finden.

    Unter "SQL" (sprachunabhängig) ist das aber nicht so nett umzusetzen.
    DB Spezifisch gibt es dafür jenachdem schöne SQL Erweiterungen. Bspw. start with oder connect by in Oracle usw.
    Wenn Du danach suchst, findest Du wahrscheinlich auch Emulationen für ANSI SQL.
    Gruß, defo

    Comment


    • #3
      Originally posted by mikexmagic View Post
      Hallo zusammen,

      ich stehe vor einem Problem und finde irgenwie nicht den richtigen Ansatz. Alles was ich finden konnte kann mir immer nur eine Ebene liefern...

      In PostgreSQL geht das seit 8.4, also seit vielen Jahren, via WITH RECURSIVE ... in oraggle wohl ähnlich.

      Comment


      • #4
        CONNECT BY ist das Zauberwort in Oracle. Hier die Doku von Oracle inklusive Beispiel: http://docs.oracle.com/cd/E11882_01/...htm#SQLRF52335

        Comment


        • #5
          Danke, das sind auf jeden Fall die richtigen Ansätze!
          Da ich aber mit einem MSSQL arbeiten muss und ich auch die Tabelle selbst nicht bearbeiten kann/darf/sollte, muss ich das irgendwie anders umsetzen. Ich google mal nach einem Equivalent zu CONNECT BY PRIOR....

          Comment

          Working...
          X