mysql, Abfrage einer Menüstruktur, Unterseiten
Karsten
- datenbank
Abfrage einer Menüstruktur.#
Ich habe Seiten und Unterseiten, die ich den jeweiligen Hauptseiten zugeordnet habe.
Aufbau meiner Tabelle
ID ! SEITENTITEL ! VON
1 ! Wetter ! 0
2 ! Sonnenschein ! 1
3 ! Regen ! 1
4 ! Meer ! 0
5 ! Fisch !4
Die Seiten würde ich so abfragen:
SELECT id, seitentitel FROM tabelle WHERE id>0 ORDER BY id
aber so bekomme ich nur die Haupttitel, bei denen „VON = 0“ ist.
Wetter
Meer
Wie kann ich es bewerkstelligen, das auch die Unterseiten in meine Ausgabe einbezogen werden. Das das Ergebnis dieses wäre:
Wetter
Wetter -> Sonnenschein
Wetter -> Regen
Meer
Meer -> Fisch
Für Informationen die zu Lösung meines Problemes führen ist eine Belohnung von 1.000.000 Dankeschöns ausgesetzt!
Karsten
hi Karsten,
Für Informationen die zu Lösung meines Problemes führen ist eine Belohnung von 1.000.000 Dankeschöns ausgesetzt!
Die Lösung heißt Normalisierung. Die musst Du nicht unbedingt auf die allerletzte Normalform bringen, aber für Dein Modell, was eine 1:n Beziehung darstellt, würde ich zwei Tabellen anlegen, die Abfrage wird dann ein left outer join, der auch gar nicht soo schwer verständlich ist.
Hotti
hi,
Ich habe Seiten und Unterseiten, die ich den jeweiligen Hauptseiten zugeordnet habe.
Aufbau meiner Tabelle
ID ! SEITENTITEL ! VON
1 ! Wetter ! 0
2 ! Sonnenschein ! 1
3 ! Regen ! 1
4 ! Meer ! 0
5 ! Fisch !4Die Seiten würde ich so abfragen:
SELECT id, seitentitel FROM tabelle WHERE id>0 ORDER BY id
aber so bekomme ich nur die Haupttitel, bei denen „VON = 0“ ist.
So, Du möchtest die Tabelle behalten ;)
Versuche einen inner join, ungetestet (und feldnamen klein, die musst Du anpassen und ggf. in Backticks quoten):
SELECT table.id, table.seitentitel FROM table as basetable
INNER JOIN basetable ON table.id = basetable.id
Select-Liste auch anpassen, where-Klause, order by hintendran. Wichtig bei inner join: die Tabelle bekommt einen alias.
Hotti