stoperror
Goto Top

Access: Inner Join mit zwei Werten (eindeutiger key besteht immer aus zwei Werten)

Kann man ein innerjoin on mit zwei Werten machen?

Problem:

Es gibt zwei Tabellen, die wie folgt aussehen:

content:
schema_id
node_id
content_id


red_workflow:
schema_id
node_id
name


Nun möchte ich eine Abfrage nach name, content_id auf beide Tabellen zusammen loslassen, unter der Bedingung, dass schema_id und node_id in beiden Tabellen gleich sind. Also der eindeutige Schlüssel besteht aus zwei Feldern.
Ich kann die Tabellenstruktur nicht ändern (ist ne Oracle-Tabelle, die ich per Verknüpfung nach Access hole).

Momentan ist sie nur über die node_id verknüpft aber das Feld ist nicht eindeutig:

SELECT content.node_id, red_workflow.name
FROM red_workflow INNER JOIN content ON red_workflow.node_id = content.node_id
WHERE (((content.schema_id) Like "S350") AND ((content.erstellt)>#5/18/2005#));

Geht folgendes:

SELECT content.node_id, red_workflow.name
FROM red_workflow INNER JOIN content ON (AND (red_workflow.node_id = content.node_id) (red_workflow.schema_id=content.schema_id))
WHERE (((content.schema_id) Like "S350") AND ((content.erstellt)>#5/18/2005#));

Geht das irgendwie so? Oder ganz anders?

Content-Key: 10911

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

Printed on: April 19, 2024 at 13:04 o'clock

Member: Atti58
Atti58 May 20, 2005 at 06:33:46 (UTC)
Goto Top
Deine Abfrage müsste ohne "WHERE" ungefähr so aussehen:

SELECT content.node_id, red_workflow.name
FROM content INNER JOIN red_workflow ON (content.node_id = red_workflow.node_id) AND (content.schema_id = red_workflow.schema_id);

Gruß

Atti
Member: stoperror
stoperror May 20, 2005 at 07:31:03 (UTC)
Goto Top
Danke.
Ich hatte mir das jetzt komplizierter vorgestellt. Klasse, dass das so einfach geht face-wink
Member: Atti58
Atti58 May 20, 2005 at 07:55:38 (UTC)
Goto Top
Warum benutzt Du nicht den "grafischen Abfragen-Designer" in Access, damit kannst Du Deine Abfragen klar definieren und testen und dann die SQL-Anweisung in Deine Anwendung kopieren? Wenn Du beide Tabellen in Deiner Abfrage hast, musst Du nur per Drag and Drop die Beziehungen zwischen den Feldern (durch ziehen von Feld(a)-Tabelle1 auf Feld(x)-Tabelle2 [in Deinem Fall zwei Mal machen])) herstellen. Auf diese Verbindung(en) dann ein Mal links klicken (Linie wird dick), dann rechts klicken - da kannst Du dann die Beziehungsart bestimmen. Zum Schluss die SQL-Darstellung wählen, das war's,

Gruß

Atti.
Member: stoperror
stoperror May 20, 2005 at 08:12:21 (UTC)
Goto Top
Ja genau, ich war mir aber nicht sicher, ob das so funktioniert, dass man einfach mehrere Felder zueinander in Beziehung setzt. Aber nun weiss ich's ja.
Danke nochmal vielmals.