Hallo,
ich habe ein Problem mit einer SQL-Abfrage. Ich weiß, dass ich das auch einfach mit PHP programmieren kann, aber das wird bei größeren Tabellen sehr langsam, da mehrere Unterabfragen gestartet werden müssen.
Und zwar habe ich eine Tabelle 'categories' die 3 Felder hat:
id, name und parent_category_id.
Ich denke mal, dass die Felder selbsterklärend sind. Damit kann ich eine hierarchisch angeordenete Kategorieübersicht speichern. Naja nun möchte ich einerseits zu einer speziellen Kategorie alle Kinder (select * from categories where parent_category_id = ...) dieser Kategorie bekommen. Soweit kein Problem, aber wenn ich jetzt alle Kinder bis in jede Ebene (also enkelkinder, etc.) erhalten möchte komme ich nicht weiter. Vielleicht hat ja einer eine Idee.
Und wenn ich nun von einer Kategorie alle Eltern-Kategorien haben möchte. Also quasi wenn das so aufgebaut ist:
Hauptkat - Unterkat - UnterUnterKat. Und ich will jetzt ausgehend von UnterUnterKat alle Eltern haben.
Kann man sowas mit einer einzigen SQL-Abfrage erledigen?
Wäre geil, wenn mir einer hilft!
Viele Grüße,
Dominik
ich habe ein Problem mit einer SQL-Abfrage. Ich weiß, dass ich das auch einfach mit PHP programmieren kann, aber das wird bei größeren Tabellen sehr langsam, da mehrere Unterabfragen gestartet werden müssen.
Und zwar habe ich eine Tabelle 'categories' die 3 Felder hat:
id, name und parent_category_id.
Ich denke mal, dass die Felder selbsterklärend sind. Damit kann ich eine hierarchisch angeordenete Kategorieübersicht speichern. Naja nun möchte ich einerseits zu einer speziellen Kategorie alle Kinder (select * from categories where parent_category_id = ...) dieser Kategorie bekommen. Soweit kein Problem, aber wenn ich jetzt alle Kinder bis in jede Ebene (also enkelkinder, etc.) erhalten möchte komme ich nicht weiter. Vielleicht hat ja einer eine Idee.
Und wenn ich nun von einer Kategorie alle Eltern-Kategorien haben möchte. Also quasi wenn das so aufgebaut ist:
Hauptkat - Unterkat - UnterUnterKat. Und ich will jetzt ausgehend von UnterUnterKat alle Eltern haben.
Kann man sowas mit einer einzigen SQL-Abfrage erledigen?
Wäre geil, wenn mir einer hilft!
Viele Grüße,
Dominik
Kommentar