Axel Richter: SELECT umkehren

Beitrag lesen

Hallo,

Und wie kann ich das Ergebnis auf ein Datum begrenzen?

SELECT person_id, person_vorname, person_nachname, job_datum
FROM person
LEFT JOIN job ON ( person_id = job_person_id )
WHERE job_id IS NULL AND job_datum='2005-03-16'

Der LEFT JOIN mit WHERE job_id IS NULL bringt Dir alle die Datensätze aus der Tabelle person, für die es in der Tabelle job noch keine Einträge gibt, für die gelten würde: person_id = job_person_id. Das ergibt alle Personen, für die es _überhaupt_ noch keine Jobs gibt. Das heißt doch aber sicher auch, dass es dann auch noch kein job_datum gibt, oder? Wenn job_datum aber NULL ist, kann es nich gleichzeitig '2005-03-16' sein.

Wenn Du wissen willst, für welche Personen es am '2005-03-16' noch keine Jobs gibt, dann musst Du fragen, ob im JOIN job_id NULL ist (es gibt überhaupt noch keine Jobs für diese Person) ODER, wenn es Jobs gibt, diese _nicht_ am '2005-03-16' sind.

SELECT person_id, person_vorname, person_nachname, job_datum
FROM person
LEFT JOIN job ON ( person_id = job_person_id )
WHERE job_id IS NULL OR job_datum <> '2005-03-16'

viele Grüße

Axel