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-ID: 10911

Url: https://administrator.de/forum/access-inner-join-mit-zwei-werten-eindeutiger-key-besteht-immer-aus-zwei-werten-10911.html

Ausgedruckt am: 10.04.2025 um 04:04 Uhr

Atti58
Atti58 20.05.2005 um 08:33:46 Uhr
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
stoperror
stoperror 20.05.2005 um 09:31:03 Uhr
Goto Top
Danke.
Ich hatte mir das jetzt komplizierter vorgestellt. Klasse, dass das so einfach geht face-wink
Atti58
Atti58 20.05.2005 um 09:55:38 Uhr
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.
stoperror
stoperror 20.05.2005 um 10:12:21 Uhr
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.