Announcement

Collapse
No announcement yet.

Werte innerhalb einer Tabelle in eine Zeile bringen

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

  • Werte innerhalb einer Tabelle in eine Zeile bringen

    Hallo erstmal :-)

    Also ich habe eine Frage.
    Und zwar habe ich eine Tabelle die wie folgt aufgebaut ist:
    ID PARENTID TITLE
    ox_cat_ober_0 oxrootid HARDWARE
    ox_cat_haupt_1 ox_cat_ober_0 Arbeitsspeicher
    ox_cat_1unter_3 ox_cat_haupt_1 DDR
    ox_cat_2unter_6 ox_cat_1unter_3 DDR 256 MB
    ox_cat_2unter_10 ox_cat_1unter_3 DDR 512 MB

    Die PARENTID definiert immer die darüberliegende Kategorie.
    Jetzt benötige ich eine Ausgabe in welcher die Kategoriehierarchie in einer Zeile angezeigt wird.

    z.B.
    1. Kat;2. Kat;3. Kat;4. Kat;ID der 4. Kat;
    HARDWARE;Arbeitsspeicher;DDR;DDR 256 MB;ox_cat_2unter_6
    HARDWARE;Arbeitsspeicher;DDR;DDR 512 MB;ox_cat_2unter_10

    Gibt es da eine Möglichkeit?
    Ich bin für jede Antwort sehr dankbar.


    Viele Grüße

    Screamer007

  • #2
    Ist es nicht möglich? Oder weiß keiner Rat? ;-)

    Comment


    • #3
      Hallo,

      MySQL unterstützt (aktuell) keine hierarchischen Abfragen. Das kannst du nur mühsam mit Joins nachbauen. Wird natürlich schwierig, wenn die Anzahl der Hierarchieebenen unterschiedlich ist.

      Gruß Falk
      Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

      Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

      Comment


      • #4
        Hallo,

        also wie ich soeben heraus gefunden habe, sind es maximal 4 zusammengehörige Kategorien.
        Wie war den grob die Idee mit den Joins?

        Ich dachte immer das man dass mit Subquerys lösen könnte.
        Also ala: Select * from categories where in (Select * .....


        Viele Grüße

        Screamer007

        Comment


        • #5
          Grob gesagt: Kategorientabelle n-mal über die ParentID joinen (jeweils mit anderem Alias).
          Dann die Spalten mit concat() verketten.

          Gruss Falk
          Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

          Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

          Comment


          • #6
            Vielen vielen Dank!

            Anbei die Lösung:
            SELECT A.TITLE, B.TITLE, C.TITLE, D.TITLE, D.ID FROM categories A
            LEFT JOIN categories B ON A.ID = B.PARENTID
            LEFT JOIN categories C ON B.ID = C.PARENTID
            LEFT JOIN categories D ON C.ID = D.PARENTID

            Comment

            Working...
            X