Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Inner Join über mehrere Tabellen in zwei Richtungen

Frage Entwicklung Datenbanken

Mitglied: TheToxic

TheToxic (Level 1) - Jetzt verbinden

15.04.2010 um 09:19 Uhr, 7543 Aufrufe, 5 Kommentare

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 - Klicke auf das Bild, um es zu vergrößern

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:
01.
SELECT Master.Vorname, Master.Nachname, Master.Telefon, Stadt.Stadt, Stadt.PLZ, Bundesland.Bundesland, User.Usertyp, User.Berechtigungen 
02.
From Master  
03.
INNER JOIN (Stadt 
04.
    INNER JOIN Bundesland 
05.
    ON Stadt.bundesland_id = Bundesland.ID) 
06.
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?!
Mitglied: AndreasHoster
15.04.2010 um 09:59 Uhr
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;
Bitte warten ..
Mitglied: TheToxic
15.04.2010 um 12:11 Uhr
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?
Bitte warten ..
Mitglied: AndreasHoster
15.04.2010 um 13:40 Uhr
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.
Bitte warten ..
Mitglied: Biber
15.04.2010 um 15:42 Uhr
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.

  • 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.
Bitte warten ..
Mitglied: TheToxic
16.04.2010 um 07:59 Uhr
Vielen Dank für die überaus hilfreiche Antwort. *daumen hoch*
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
gelöst PowerShell Domain Join (2)

Frage von Patrick-IT zum Thema Batch & Shell ...

LAN, WAN, Wireless
Mehrere Hardware Firewalls (10)

Frage von cerberus90 zum Thema LAN, WAN, Wireless ...

VB for Applications
gelöst Excel VBA Eine oder mehrere Zellen Verschieben (2)

Frage von batchnewbie zum Thema VB for Applications ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (17)

Frage von liquidbase zum Thema Windows Update ...

Windows Tools
gelöst Aussendienst Datensynchronisierung (12)

Frage von lighningcrow zum Thema Windows Tools ...

Windows Server
RODC über VPN - Verbindung weg (10)

Frage von stefan2k1 zum Thema Windows Server ...