Solkar: MySQL: Hierarchische SELECTS

Beitrag lesen

Hallo!

Ich habe ein Newsscript, das News in Kategorien einordnet. Nun will ich Daten einer News abfragen und gleichzeitig in einem Feld alle Elternkategorien auflisten, wozu ich aber eine Info der Hauptkategorie brauche.

Sagen wir, ich habe eine News in der Kategorie "Porsche", eine Unterkategorie von "Autos" und diese wiederum von "Fahrzeuge". Nun brauche ich aber eine Information aus der Tabellenzeile "Porsche" um auf die Kategorien "Autos" und "Fahrzeuge" zu schliessen.

Ist die Schachtelungstiefe der Kategorien konstant oder gibt es zumindest eine Obergrenze?

Mein Traumquery sieht ungefaehr so aus:

SELECT GROUOP_CAT(kat2.katname), news.title, (@bedingung = kateg.besondererschluessel) from news JOIN kateg on news.katid = kateg.id JOIN ( SELECT katname FROM kateg WHERE kateg.besondererschluessel < @bedingung) GROUP BY news.title

Diese Query erhellt Dein Problem nicht.

Leider funktioniert das mit der Variable nicht (ich habe irgendwo gelesen, Variablen wuerden erst dann ausgewertet, wenn das Ergebnis zurueck an den User geschickt wird). Kann mir irgendjemande mit einem Loesungsvorschlag helfen?

Du könntest "kateg" ein (NULLable) Feld "parent_id" hinzufügen und per

FOREIGN KEY (parent_id) REFERENCES kateg(id)

zur Eltern-Kategorie verweisen lassen.

Bitte vorsorglich Versionsnummer von MySQL, Plattform und verwendete Programmiersprache angeben!

Falls die Schachtelungstiefe beliebig sein soll, wird's etwas komplex; beantworte bitte erst mal die Rückfrage und liefere die Info.

Grüsse

Solkar