Casablanca: SQL - Join und SubSelect

Beitrag lesen

Hallo,

ich habe da folgendes Problem und sitze ich gerade auf dem Schlauch. Ich habe 5 Tabellen wie folgt:

User

UserId, Username, ...

Tasks

TaskId, TaskName, LanguageId, ...

Languages

LanguageId, Language, ...

und zwei Verknüfungstabellen:

UserLanguages

UserId, LanguageId, ...

UserTasks

UserId, TaskId, Status

Am Anfang bekommen die Benutzer alle Tasks für einer bestimmten Sprache, für die angemeldet sind, zu sehen. Die Benutzer können diese Tasks annehmen oder ablehnen. Erst dann wird die Tabelle UserTasks mit Daten befüllt. Der Status wird auf 0=abgelehnt oder auf 1=angenommen gesetzt. Die Benutzer, die einen Einsatz(Task) abgelehnt haben, dürfen bei dem nächsten Aufruf der Seite die abgelehnten Einsätze nicht mehr sehen. Das Problem ist, ich muss die UserTasks-Tabelle in meiner SQL-Abfrage aufnehmen, die zu Anfang für den jeweiligen Benutzer keinen Eintrag hat, bis er einen Auftrag annimmt bzw. ablehnt. Da bekomme ich dann aber keine korrekte Ergebnisse. Ich habe das hier versucht.

SELECT UserLanguages.UserId, Languages.Language, Tasks.TaskId
FROM UserLanguages 
  Left Join Tasks on UserLanguages.LanguageId=Tasks.LanguageId 
  Left join  Languages on Tasks.LanguageId=Languages.LanguageId 
  left join [hier muss die Tabelle UserTasks hinein] 
where UserLanguages.UserId=VARIABLE  

Ich vermute, dass in den [] eine SubSelect-Query stehen muss, die eine Menge ausgibt, die auch leer sein darf und ich trotzdem die korrekten Records aus den anderen Tabellen zurück bekommen kann.

Danke im Voraus.

Edit Rolf B: SQL mit Zeilenumbrüchen versorgt