Hallo,
ich habe eine Query
SELECT
...
FROM tabelle_stunden std
LEFT JOIN tabelle_sonder s ON (std.User = s.User AND std.Datum BETWEEN s.Start AND s.End
AND std.User = '".$_POST['myUser']."')
LEFT JOIN tabelle_mein m ON std.MID = m.MID
WHERE
std.User = '".$_POST['myUser']."'
AND std.Datum BETWEEN '".$_POST['datum_min']."' AND '".$_POST['datum_max']."'
Tabelle: stunden
ID, Datum,
Tabelle sonder:
ID, Kategorie, Start,End
Tabelle mein: ID, MID, ...
Die funktioniert perfekt, aber listet mir nur die Tage auf, die auch in der Tabelle stunden vorhanden sind. Ich hätte aber gerne alle Tage aufgelistet, auch wenn sie in der Tabelle stunden gar nicht vorhanden ist.
Deshalb habe ich eie weitere Tabelle mit allen Daten bis ins Jahr 2100 angelegt.
Nun dachte ich, dass ich den SELECT auf diese Tabelle leite und alle anderen tabellen per LEFT JOIN einbinde. Aber ich erhalte trotzdem nur die in der tabelle stunden enthaltenen Daten. Vermutlich, weil ich über das Datum joinen muss.
Wie schaffe ich es, dass mir alle Tage im min-max-Zeitraum angezeigt werden und die entsprechenden Daten aus den anderen Tabellen dazu gejoint werden?
Jörg