max: MYSQL Query: NOT IN? "JOIN"+"WHERE"-clause?

Beitrag lesen

Hallo,
komme mittlerweile absolut nicht mehr weiter, wäre super wenn Jemand helfen könnte!

Ich will eine zusätzliche Bedingung in meinen query einbauen. Der soll mir alle Objekte aus objects ausgeben, für die zu einem gegebenen Datum ($beg,$end) kein Eintrag in bookings vorhanden ist (keine Buchung vorliegt):

$query = "SELECT nr FROM objects WHERE nr NOT IN  
  (  
     SELECT objnr FROM bookings WHERE  
     (('$end' > date1) AND ('$end' <= date2))  
     OR  
     (('$beg' < date2) AND ('$beg' >= date1))  
     OR  
     (('$beg' <= date1) AND ('$end' >= date2))  
  )  
";

Ergebnis: mysql_affected_rows()=0, obwohl zutreffende Datensätze vorhanden.

Beliebige Kombinationen mit DISTINCT und NOT EXISTS brachten auch keinen Erfolg. Der geschachtelte Query funktioniert, das weiss ich sicher.

Habe noch den Tipp bekommen das Ganze mit JOIN zu machen, nur wie kombiniere ich JOIN mit meiner zusätzlichen Bedingung? Oder ist ein JOIN gar ncht nötig?

Danke!
Max