Hallo
Ich habe eine Abfrage, in der ich drei Tabellen miteinander verbinden möchte (übe left outer joins, da es nicht zu jedem eintrag entsprechende werte in den anderen tabellen gibt, aber keine einträge verloren gehen sollen). Mein Problem dabei ist, dass in einem Join zwei Kriterien geprüft werden müssen.
Folgendes habe ich bisher probiert:
SELECT p.[Last Name], p.[First Name], p.[E-Mail], p.[Country], p.[Company], p.[Attendee type], p.[Business Unit], sp.Code, sf.*
FROM ((Participants p LEFT OUTER JOIN SessionParticipation sp ON p.[Badge ID]=sp.[Badge ID]) LEFT OUTER JOIN SessionFeedback sf ON p.[Badge ID]=sf.BadgeID)
WHERE sf.SessionCode=sp.Code
Dabei gehen allerdings Daten verloren.
Nach SQL müsste folgendes gehen und wäre ziemlich genau, was ich brauche:
SELECT p.[Last Name], p.[First Name], p.[E-Mail], p.[Country], p.[Company], p.[Attendee type], p.[Business Unit], sp.Code, sf.*
FROM ((Participants p LEFT OUTER JOIN SessionParticipation sp ON p.[Badge ID]=sp.[Badge ID]) LEFT OUTER JOIN SessionFeedback sf ON (p.[Badge ID]=sf.BadgeID) AND sf.SessionCode=sp.Code)
Access akzeptiert das allerdings nicht. Fehlermeldung: "Join Expression not supportet".
Nach einiger Suche, habe ich es mit verschiedenen Verschachtelungen versucht, die aber auch nicht so funktionieren, wie ich es gerne hätte.
Hat jemand eine Idee? Vielen Dank für jeden Tipp (und auch jedes Feedback, falls die Frage unklar ist oder so -mein erster Beitrag).
Güße
Hallo,
Access kennt keinen LEFT OUTER JOIN
Nimm stattdessen LEFT JOIN
Hi,
vielen Dank! Habe es geändert.
Das Problem bleibt leider das gleiche: "Join expression not supportet", wenn ich ON (bed1 AND bad2) versuche...
Hallo,
weil sich die Bedingungen nicht auf die gejointe Tabelle im 2. Join bezieht!
ON (p.[Badge ID]=sf.BadgeID) AND sf.SessionCode=sp.Code)
du hast hier angegeben, p mit sf und sf mit sp - das geht nicht
wieso 'schiebst' du die Abfrage nicht im Entwurfsmodus zusammen?