SQL - Join und SubSelect
bearbeitet von Rolf BHallo,
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.
~~~ SQL
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.