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