Announcement

Collapse
No announcement yet.

Abfrage 3-Stufige Warengruppe in einer Tabelle

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

  • Abfrage 3-Stufige Warengruppe in einer Tabelle

    Hallo zusammen,

    ich habe eine Tabelle mit 3-stufigen Warengruppen. Beispiel:

    PHP Code:
    id      |  gruppe |  name      |  parent
    ----------------------------
    1       |  10000  |  Auto      |  0
    2       
    |  11000  |  VW        |  10000
    3       
    |  11010  |  Polo      |  11000
    4       
    |  11020  |  Golf      |  11000
    5       
    |  20000  |  Handy     |  0
    6       
    |  21000  |  Apple     |  20000
    7       
    |  21010  |  iPhone4   |  21000
    8       
    |  21020  |  iPhone5   |  21000 
    Frage: Wie erstelle ich eine Abfrage die mir, egal auf welcher Ebene ich einsteige, immer auch die darüber liegenden Hirachien
    ausgibt?

    Wenn ich also die Nummer 21010 suche sollte das Ergebnis so aussehen:

    Handy | Apple | iPhone4

    Wenn ich die Nummer 11000 suche dann so

    Auto | VW

    wie bekomme ich das in einer Abfrage hin?

    Vielen Dank für Eure Hilfe.

    Gruß Nevada
    Zuletzt editiert von Nevada208; 07.11.2015, 11:40.

  • #2
    Schau mal ob es in MySQL sowas wie CONNECT BY gibt. Das dient dazu solche Baumstrukturen in SQL abfragbar zu machen

    Comment


    • #3
      Das etwas allgemeinere Konzept, als Connect By, von Common Table Expressions (with Clause) scheint auch noch nicht seinen Weg nach MySQL gefunden zu haben
      Ein Beispiel (übel) wie man das ohne Unterstützung der DB für hierarchischen Abfragen hinbekommt z.B hier.

      Comment


      • #4
        Also wenn die Hirarchie auf 3 Stufen festgelegt ist und Du mit mySQL arbeiten musst, dann würde ich das fest verdrahten.
        Im einfachsten fall auf allen 3 eben suche per OR.

        Angenehm wäre evtl., wenn die Waregruppentabelle noch die Ebene mitliefert.
        Die Frage wäre auch, wie genau die Ausgabe aussehen soll, so wie in Du angegeben hast 3 spaltig oder 2 oder 1 je nach Ebene? Das ist immer doof in SQL.
        Wenn Du da flexibel bist, kann man vlt ein gutes Statement finden.
        Gruß, defo

        Comment


        • #5
          Wo ich nochmal über defos Antwort nachdenke steckt in den Nummern für die Strukturbeziehung ein festes Schema? Oder sieht das nur so in deiner Testtabelle aus so da man da scheinbar ein Muster erkennt (1.te Stelle Gruppe, 2.te Stelle Untergruppe, 4.te Stelle Blatt)

          Comment


          • #6
            Hallo Ralf,

            es gibt ein Muster bei den Warengruppen-Nummern. In der Originaltabelle sind die B´Nummer immer so aufgebaut des die erste 2er-Gruppe + 0000 die Hauptgruppe ist. Die untergruppen ist dann die 2. 2er Gruppe usw.

            Beispiel:

            100000 - Hauptgruppe
            101000 - 1. Untergruppe
            101010 - 2. Untergruppe

            Man könnte jetzt mit substring arbeiten und schauen welche Stellen Nullen haben und so auf die Warengruppe schließen. Das ist aber zu unsicher da die Nummern
            manuel vergeben werden und wenn das Schema nicht eingehalten wird funktioniert es nicht mehr.

            Comment


            • #7
              Ich habe jetzt den Vorschlag von defo umgesetzt und in der Tabelle die Spalten für die Untergruppen ergänzt, Danke an Alle!

              Comment

              Working...
              X