mathes: MySQL Abfrage Problem bei der richtigen Ausage

Beitrag lesen

Halihallo Matze

Also das ist meine SQL Abfrage aber mir wird einfach zuviel Ausgegeben?
SELECT content.id, content.content_1, content.titel_1,
menu.link, menu.menu, submenu.link, submenu.submenu FROM
   content, menu, submenu WHERE
   content.id = menu.link OR
   content.id = submenu.link
   ORDER BY titel_1 ASC

Du machst einen Cross-Join zwischen content, menu und submenu. Aus diesem wählst du
Einträge aus, dessen content.id=menu.link oder content.id=submenu.link sind. _Aber_
falls eine Bedinung zutrifft (z.B. content.id=menu.link) hast du vom cross-join noch
immer _alle_ submenu-links dabei. Wenn du jedoch nur die content-Informationen brauchst,
kannst du einen GROUP BY content.id vor ORDER BY einfügen.

Danke erstmal für den Tip!

BTW: Das Datenkonzept finde ich etwas unklug, es sei denn du kannst auf Ewigkeiten sagen,
dass du nie mehr als eine Hierarchiestufe benötigst... Und wie teilst du die Beziehung
menu->submenu aus?

Ich habe in meinem Beispiel auch nicht die Komplette Tabelle abgebildet... Die Beziehung wird über die mid aufgebaut, die in menu und submenu ist.

Gruß Mathes

Viele Grüsse

Philipp