Es bleibt das Problem, wenn mehrere Veranstaltungen verschiedener Tage zusammengehören, aber eine Fremdveranstaltung datumsmäßig dazwischenrutscht.
Dein Grundproblem ist also, dass du zum einen eine chronologische Reihenfolge haben willst, das aber unter anderem nicht hinhaut, weil Festivals sich überschneiden.
Da kommt hinzu, das es "Unterfestivals" aka Veranstaltungen gibt.
In Prosa geschrieben musst du also alle Hauptfestivals ermitteln und Veranstaltungen/Unterfestivals zuordnen.
Dein Feld festival_kz
erschließt sich mir momentan so: Wenn 1 -> Unterveranstalung des vorherigen Festivals (wo festival_kz
= 0).
Das klingt für mich nach einem Design-Fehler.
id ! start ! end !titel ! parent ! gastgeber_id
-----+-------------------------+------------+--------------
15 ! 31.8. ! 3.9.!Bla-Hauptfestival ! NULL ! 641564
1325 ! 2.9. ! 2.9.!Bla-Unterfestival ! 15 ! 123
Mit einer solchen Struktur ermittels du alle Hauptfestivals mit
SELECT
*
FROM
`festival` as `main`
WHERE
`main`.`parent` IS NULL
ORDER BY
`main`.`start` ASC;
Jetzt fehlt eigentlich nur noch ein JOIN
auf die gleiche Tabelle noch mal um Unterveranstaltungen zu bekommen (musste bis her noch nicht mit JOIN
s auf die eigene Tabelle arbeiten, deswegen kann ich da nicht weiter Code liefern).
Damit solltest du keine Überschneidungen mehr zwischen Haupt- und Unterveranstaltungen haben.
MfG
bubble
If "god" had intended us to drink beer, he would have given us stomachs. - David Daye