Entwickler-Ecke

Datenbanken - Join mit Access


Nersgatt - Mo 19.10.09 11:25
Titel: Join mit Access
Kann mir mal jemand das Brett vor meinem Kopf wegnehmen?

Ich muss Daten aus einer Access-Datei importieren (*.mdb). Sonst arbeite ich nur mit Firebird.

Folgende Abfrage:

SQL-Anweisung
1:
2:
3:
4:
5:
6:
select m.mittelname, a.awg_id
from mittel m
left join awg a 
  on (a.kennr = m.kennr) 
left join awg_zulassung az 
  on (az.awg_id = a.awg_id)


Liefer diese Fehlermeldung:
---------------------------
Fehler
---------------------------
Syntaxfehler (fehlender Operator) in Abfrageausdruck '(a.kennr = m.kennr)

left join awg_zulassung az

on (az.awg_id = a.awg_id)'.
---------------------------
OK
---------------------------

Lasse ich das letzte Join weg, funktioniert es. Woran liegt das?

Danke!
Jens


ene - Mo 19.10.09 11:34

Moin Jens,

ich würde erstmal ein As zwischen Tabellennamen und Alias setzen, manchmal spinnt Acces da schon. Desweiteren ist dann ja auch die Frage, wie sollen die 3 Tabellen verbunden werden. So würde ich sagen, dass a LEFT JOIN auf az hat und dieses Datenmenge einen LEFT JOIN auf m?


SQL-Anweisung
1:
2:
FROM mittel As m
  LEFT JOIN (awg As a LEFT JOIN awg_zulassung As az ON az.awg_id = a.awg_id) ON a.kennnr = m.kennnr


Die Klammern sind dabei schon entscheidend.


Nersgatt - Mo 19.10.09 11:43

Ne, das ist es nicht.

Die Verbindung ist Mittel AS M (1:n) AWG as A (1:1) AWG_ZULASSUNG as AZ

Also mittel -> awg -> awg_zulassung

Ich habe die Probleme nur, sobald ich eine 2. Tabelle per Join in die Abfrage holen möchte. Mache ich die Abfrage auf awg und hole per left join die mittel hinzu, klappt es. Hole per left join noch awg_zulassung mit rein, habe ich wieder die selbe Fehlermeldung.

Edit: Deine Abfrage klappt doch, war nur ein Feldname falsch geschrieben. Danke!