Laden...

MsAccess: Select mit Join - Mehrere Tabellen auslesen

Erstellt von andy777 vor 10 Jahren Letzter Beitrag vor 10 Jahren 2.299 Views
Thema geschlossen
A
andy777 Themenstarter:in
14 Beiträge seit 2013
vor 10 Jahren
MsAccess: Select mit Join - Mehrere Tabellen auslesen

verwendetes Datenbanksystem: ACCESS 2007

Hallo Liebe Forummitglieder,

ich experementiere mit ACCESS und habe ein Problem, dass ich selber nicht lösen kann...

Ich habe vier Tabellen, die in einer 1:1 Beziehung zueinander stehen. Mir ist klar, dass ich alles in eine Tabelle packen könnte. Ich will aber mein Datenbank so flexibel wie möglich gestalten.
Das speichern der Daten funktioniert einwandfrei, bloß mit auslesen klappt es nicht.

die vier Tabellen

Project_general
Project_die
Project_machining
Persons

Primärschlüssel bei allen vier ist der Piston_type_number...

folgendes habe ich überlegt:

 string SqlString = "SELECT * FROM Project_general INNER JOIN Project_general ON Project_general.Piston_type_number = Project_die.Piston_type_number, INNER JOIN Project_die ON Project_die.piston_type_number = Persons.Piston_type_number, INNER JOIN Persons ON Persons.Piston_type_number = Project_machining.piston_type_number, INNER JOIN Project_machining ON Project_machining.piston_type_number =  " + "'" + tbFMPartName.Text + "'";

Kriege aber ein Sytaxfehler dabei. Habe schon mehrere Konstelationen ausprobiert und gegoogelt. Kriege das aber nicht wirklich hin. Wäre für nen Hinweis sehr dankbar und bedanke mich im Voraus.

Andrej

2.207 Beiträge seit 2011
vor 10 Jahren

Hallo andy777,

wenn du die Chance hast, von Access weg zu kommen, dann bitte versuche das.

Wenn du einen Syntaxfehler bekommst, stimmt mit Sicherheit was mit deinen Hochkommas etc. nicht.

[Artikelserie] SQL: Parameter von Befehlen

Damit kannst du dein SQL-Statement wunderbar zusammenbauen. Dann passiert sowas erst gar nicht.

Gruss

Coffeebean

1.696 Beiträge seit 2006
vor 10 Jahren

Hallo,

Komma vor INNER JOIN entfernen und [Artikelserie] SQL: Parameter von Befehlen

Grüße

Ich bin verantwortlich für das, was ich sage, nicht für das, was du verstehst.

**:::

A
andy777 Themenstarter:in
14 Beiträge seit 2013
vor 10 Jahren

Danke euch für die schnellen Antworten...
Die Links sind sehr interessant aber lösen nicht wirklich meine Problem.

habe jetzt die Kommas vor INNER JOIN entfernt. Jezt heisst es "fehlender Operator" Was ein Operator ist ist mir klar. Müssen den die JOINs mit einem AND verbunden werden. Wobei ich denke das es nicht so ist...

Mich interessiert wie die Primärschlüssel in die Abfrage integriert wird und zwischen den vier Tabellen "übergeben" wird

So siehts aus im Moment... Und wie gesagt "Sytaxfehler... Fehlender Operator...

string SqlString = "SELECT * FROM Project_general INNER JOIN Project_die ON Project_general.Piston_type_number = Project_die.Piston_type_number INNER JOIN Project_die ON Project_die.piston_type_number = Persons.Piston_type_number INNER JOIN Persons ON Persons.Piston_type_number = Project_machining.piston_type_number INNER JOIN Project_machining ON Project_machining.piston_type_number =  " + "'" + tbFMPartName.Text + "'";
Hinweis von Coffeebean vor 10 Jahren

Kannst du bitte den Code in die entsprechenden Code-Tags machen? Danke.

[Hinweis] Wie poste ich richtig? Punkt 6

A
andy777 Themenstarter:in
14 Beiträge seit 2013
vor 10 Jahren

Ich muss mit einer ACCESS Datenbank arbeiten. Du weisst ja...
Alles muss perfekt funktionieren darf aber nix kosten 😃

L
416 Beiträge seit 2008
vor 10 Jahren

Dein SQL macht ja so auch keinen Sinn... du scheinst die syntax von joins noch nicht ganz verstanden zu haben. Eher so:


SELECT * 
FROM Project_general INNER JOIN Project_die ON Project_general.Piston_type_number = Project_die.Piston_type_number 
INNER JOIN Persons ON Project_die.piston_type_number = Persons.Piston_type_number 
INNER JOIN Project_machining ON Persons.Piston_type_number = Project_machining.piston_type_number 
WHERE Project_machining.piston_type_number = @myID 
1.696 Beiträge seit 2006
vor 10 Jahren

Hallo,

Using Inner Joins bei ON musst du die Beziehung angegeben, wenn du filtern möchtest nimm WHERE

btw. MS SQL Express kostet auch nix, ist aber ein richtiges DBMS

Edit: select * ist sehr schlecht, brauchst du wirklich alle Felder?
Grüße

Ich bin verantwortlich für das, was ich sage, nicht für das, was du verstehst.

**:::

T
67 Beiträge seit 2010
vor 10 Jahren

Ich muss mit einer ACCESS Datenbank arbeiten. Du weisst ja...
Alles muss perfekt funktionieren darf aber nix kosten 😃

Dann nimm doch SQLite. Kostet nichts und Du hast eine vernünftige Datenbank.

A
andy777 Themenstarter:in
14 Beiträge seit 2013
vor 10 Jahren

Ja Syntax habe ich noch nicht richtig verstanden...

Ja, ich brauch alle Felder erstmal. Man soll die Komplete übersicht zum Kolbenprojekt bekommen...

SQL ist klar. Werde das in der Zukunft umsetzten wenn die Sache global werden soll. Momentan ist es nur bissl für Demo für meinen Chef 😃

2.207 Beiträge seit 2011
vor 10 Jahren

Ja Syntax habe ich noch nicht richtig verstanden...

Dann handelt es sich hier wirklich um (SQL)-Grundlagen.

Mit einem Verweis auf:

[Hinweis] Wie poste ich richtig? 1.1 und 1.1.1 ist hier somit zu.

SQL Joins

Gruss

Coffeebean

Thema geschlossen