Untergruppe von Untergr. von Untergr. etc. finden

Hallo,

ich habe eine größere MySQL 4-Tabelle, die nach folgendem Schema aufgebaut ist:

ID | Untergruppe von ID | Titel
--------------------------------------------------
 1 | 0 | Art. 1 - Obergruppe
 2 | 0 | Art. 2 - Obergruppe
10 | 2 | Art. 10 - Untergr. von 2
11 | 2 | Art. 11 - Untergr. von 2
20 | 11 | Art. 20 - Untergr. von 11
21 | 11 | Art. 21 - Untergr. von 11
30 | 21 | Art. 30 - Untergr. von 21
31 | 21 | Art. 31 - Untergr. von 21
40 | 31 | Art. 40 - Untergr. von 31

usw.

Also mittels Einrückung dargestellt:

1
2
 10
 11
 20
 21
 30
 31
 40 (usw.)

Es gibt also zum Einen Artikelgruppen, die eine Obergruppe darstellen und nichts anderem untergeordnet sind.
Zum Anderen gibt es Untergruppen, die irgend einer anderen Untergruppe oder sogar einer Obergruppe untergeordnet sind.
Ich hoffe, ich konnte die Struktur einigermaßen transparent gestalten :frowning:

Jetzt bekomme ich eine ID irgend einer Untergruppe geliefert und müsste dann dazu alle übergeordneten IDs herausfinden.
Z.B. ich bekomme die 40 => übergeordnet ist die 31 => übergeordnet ist die 21 => übergeordnet ist die 11 => übergeordnet ist die 2.
Und genau diese IDs müsste ich irgendwie aus der DB bekommen, möglichst in einer Anfrage.

Hat jemand eine Idee? Ich hänge da jetzt schon den ganzen Tag dran, komme aber nicht wirklich voran. :frowning:

Vielen Dank für eure Hilfe!

Hallo zehner1,

bei diesem Problem hilft eigentlich nur ein Redesign. Das Stichwort sind „Bäume in SQL“ und der erste Treffer in Google hat auch eine sehr schöne Präsentation zum Thema http://kris.koehntopp.de/artikel/sql-self-references/.

MfG Georg V.

Hallo,

Evetl. Könnte dir dies weiterhelfen :

http://dev.mysql.com/tech-resources/articles/hierarc…

Gruss

Hi!

Unter Oracle würde ich es mit einem connect by im Select realisieren …

Für MySQL bin ich zu faul zum Suchen …

Grüße,
Tomh