Hello,
Mein Problem ist nun: Ich bin davon ausgegangen, dass der LEFT JOIN dafür sorgt, mir alle Resourcen (Plätze) zurückliefern würde, für die kein Eintrag in der schedule-Tabelle existiert.
das ist eine Fehlinterpretation. Ein Left Join liefert ALLE Datensätze zurück, die in der "linken" Tabelle existieren, und zwar im Gegensatz zum Inner Join unabhängig davon, ob er in der rechten Tabelle ein passendes Gegenstück findet oder nicht.
Was ist an meinem Ansatz falsch bzw. wie könnte man Eurer Ansicht nach den gewünschten Mechanismus besser in einem Query abbilden?
Vom Grundansatz könnte das schon so funktionieren, wobei du die von dir angenomme Vorbedingung über den LEFT JOIN erst noch herstellen musst, in dem du per WHERE-Klausel nur solche Datensätze zulässt, die in der resource-Tabelle NULL stehen haben, das sind nämlich die, die dort eben keine Entsprechung gefunden haben.
Alternativ könntest du wahrscheinlich auch eine Subselect-Variante wählen, ich schreibe sie mal etwas sinngemäß auf:
SELECT platz_id
FROM buchungen
WHERE <deine Datumskriterien>
Das hier sind dann alle Plätze, die zum gesuchten Zeitpunkt eine Buchung aufweisen.
Nun selektierst du alle Plätze, die NICHT diesen Kriterien entsprechen:
SELECT ...
FROM plaetze
WHERE platz_id NOT IN (<select von oben>)
und erhälst somit alle Plätze, für die es im Zeitraum keine derartige Buchung gibt.
MfG
Rouven
-------------------
sh:| fo:} ch:? rl:( br:& n4:{ ie:| mo:} va:) js:| de:] zu:| fl:( ss:) ls:& (SelfCode)
When the only tool you've got is a hammer, all problems start to look like nails.