thetoxic
Goto Top

Inner Join über mehrere Tabellen in zwei Richtungen

Ich möchte eine Select-Abfrage über mehrere Tabellen hinweg realisieren.

Ich beschäftige mich seit kurzem wieder einmal mit Access.

Ich habe mir zum Test eine kleine Datenbank mit folgender Struktur gebaut:
b7ee9effeffee8f46200189d3e426d2c

Meine Abfrage soll folgendes beinhalten:
  • Aus Master:
    • Vorname
    • Nachname
    • Telefon
  • Aus Stadt
    • Stadt
    • PLZ
  • Aus Bundesland
    • Bundesland
  • Aus User
    • Usertyp
    • Berechtigungen

Meine Abfrage in eine Richtung (Master -> Stadt -> Bundesland) funktioniert problemlos:
SELECT Master.Vorname, Master.Nachname, Master.Telefon, Stadt.Stadt, Stadt.PLZ, Bundesland.Bundesland, User.Usertyp, User.Berechtigungen
From Master 
INNER JOIN (Stadt
    INNER JOIN Bundesland
    ON Stadt.bundesland_id = Bundesland.ID)
ON Master.stadt_id = Stadt.ID;

Nun möchte ich die Tabelle User auch mit in die Abfrage einbeziehen, sodass ich ingesamt alle Informationen habe.
Es fehlt also noch ein Inner Join in Richtung der Tabelle User. Leider gelingt mir das nicht.

Könnte mir jemand evtl. nen Hinweis geben?!

Content-ID: 140685

Url: https://administrator.de/contentid/140685

Ausgedruckt am: 21.11.2024 um 23:11 Uhr

AndreasHoster
AndreasHoster 15.04.2010 um 09:59:32 Uhr
Goto Top
Leider gelingt mir das nicht.
Wieso? SQL Syntax Fehlermeldung, Fehlermeldung bei Ausführung der Abfrage oder schlichtweg keine Ahnung was man tun muß?

Mein Access wirft aus dem Abfrage Designer folgendes aus, wenn man es ausprobiert:
SELECT Master.Vorname, Master.Nachname, Stadt.Stadt, Stadt.PLZ, Bundesland.Bundesland, User.Usertyp, User.berechtigungen
FROM ((Master INNER JOIN Stadt ON Master.Stadt_id = Stadt.ID) INNER JOIN [User] ON Master.user_id = User.ID) INNER JOIN Bundesland ON Stadt.bundesland_id = Bundesland.ID;
TheToxic
TheToxic 15.04.2010 um 12:11:31 Uhr
Goto Top
ok, danke für den Hinweis mit dem Assistenten.

Ich wollte den Syntax selbst erarbeiten. Mich wundert blos das die Tabelle User in eckigen Klammern gehalten ist. Weiss jemand warum?
AndreasHoster
AndreasHoster 15.04.2010 um 13:40:29 Uhr
Goto Top
Accesss macht gerne mal eckige Klammern um Tabellenfelder.
Im Normalfall sind sie nicht nötig, manchmal braucht man sie, damit Access weiß, das es kein Parameter oder Funktion ist sondern ein Tabellenfeld.

In diesem Fall gehts auch ohne Klammern, wieso der Assistent dort Klammern eingesetzt hat weiß nur MS.
Biber
Biber 15.04.2010 um 15:42:31 Uhr
Goto Top
Moin TheToxic,

. Mich wundert blos das die Tabelle User in eckigen Klammern gehalten ist. Weiss jemand warum?
Dazu brauchst nur versuchen, dich in Redmonder PraktikantInnenhirne hineinzuversetzen.

Eine Liste der in Access revervierten Wörte dürfte auszugsweise so aussehen:

.....
   TRUE
    Type
-U
    UNION
    UNIQUE
    UPDATE
    USER ------------------------------------> gugge ma!
-V
    VALUE
    VALUES
    Var, VarP
    VARBINARY, VARCHAR
    VERSION
-W
...
wie auch ein Blick auf List of reserved words in Access 2002 and in later versions of Access bestätigt.

Okay, in der deutschen Übersetzung fehlt das eine oder andere Schlüsselwort, unter anderm USER....

Aber dann kannst du ja noch immer hier im Forum fragen. face-wink

  • Reservierte Worte (so z.B. auch "Month" oder "Datum" als Feld- oder Tabellennamen) sowie
  • Feld-/Tabellennamen mit "Leerzeichen im Namen"
  • sowie Parameter in Queries
müssen immer in eckige Klammern.

Grüße
Biber

P.S.
Zitat von @AndreasHoster:
----
... wieso der Assistent dort Klammern eingesetzt hat weiß nur MS.
Und alle Biber mit einem gewissen Einfühlungsvermögen. face-wink
TheToxic
TheToxic 16.04.2010 um 07:59:01 Uhr
Goto Top
Vielen Dank für die überaus hilfreiche Antwort. *daumen hoch*