Jörg: mysql: Left Join an dieser Stelle?

Beitrag lesen

Hallo Rolf,

oh. Sorry 😀 - jetzt hast Du eine Zusatzlösung wie man die Tabelle auf der Fliege (on the fly) erstellt.

👍😉

Hättest Du besser mal deine um diese Tabelle erweiterte Abfrage vorgestellt.

Ja,. denke ich im Nachhinein auch.

Du machst also jetzt so was?

SELECT d.datum, std.bla, s.fuu, m.baa
FROM datum_ref d
LEFT JOIN tabelle_stunden std ON std.datum = d.datum
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

Ja, genau so hatte ichs mir vorgestellt.

Das sollte aber funktionieren - bis auf das direkte Einsetzen von $_POST['myUser'] - das ist ein Kontextwechsel und du musst escapen.

Hätte ich auch gedacht. Umso besser wärs gewesen, wenn ich die nicht funktionierende Query gepostet hätte. Escapen ist auch klar, das mache ich, bevors in den Produktivbetrieb geht.

Es ist natürlich so, dass für die Tage, die in deinen Tabellen nicht vorkommen, nur die d.datum Spalte gefüllt ist und der Rest NULL enthält; aber das wolltest Du ja so, oder?

Ganz genauso wollte ich es.

Ich schraub nochmal daran herum,. wenns dann wieder nicht funktioniert, komme ich mal mit der Querty um die Ecke.

Jörg