Entwickler-Ecke

Datenbanken (inkl. ADO.NET) - Join mit OleDB?


reox - Di 08.09.09 14:10
Titel: Join mit OleDB?
Ich versuche einen JOIN in mit einer OleDB (Access) Datenbank zu machen, jedoch schlägt er immer fehl mit der Meldung das ein Fehler bei FROM ist:
query = "SELECT * FROM file_appendix as fa JOIN file f ON fa.appendix_id = f.id WHERE fa.file_id = '"+id+"'";

geht das nicht bei OleDB oder mach ich das falsch?


ene - Di 08.09.09 14:39

Hi,

Es soll wohl ein INNER JOIN sein? Und das zweite As dürfte auch fehlen. Ich würde dir auch vorschlagen, das mit Parametern zu erledigen. Ist file_id eine Zahl oder ein Text?


JüTho - Di 08.09.09 17:10

ene's Hinweise sind zwar richtig (vor allem die Verwendung von Parametern), aber nicht die Antwort auf die Fehlermeldung: Der Asterisk * ist unzureichend, weil zwei Tabellen angegeben werden. Du musst die Tabellen angeben:

SQL-Anweisung
1:
2:
SELECT f.*, fa.* 
  FROM ...

Das ergibt sich aus der Fehlermeldung: Der Fehler tritt vor dem FROM auf; dort steht nur der Asterisk. Also hängt damit der Fehler zusammen.

Besser wäre die Beschränkung auf einzelne Felder; es ist selten gut, alle Daten abzurufen.

Jürgen


reox - Mo 14.09.09 21:31

ok ja so gehts, hab bisher immer nur my und sqlite gemacht, da geht das auch ohne inner :D
danke!