Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

LEFT OUTER JOIN mit mehreren Bedingungen

Begonnen von anianka, Juli 17, 2013, 14:54:53

⏪ vorheriges - nächstes ⏩

anianka

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

database

Hallo,

Access kennt keinen  LEFT OUTER JOIN

Nimm stattdessen LEFT JOIN

anianka

Hi,

vielen Dank! Habe es geändert.
Das Problem bleibt leider das gleiche: "Join  expression not supportet", wenn ich ON (bed1 AND bad2) versuche...

database

#3
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?