Wenn Sie mehrere Tabellen in eine Abfrage einschließen, verwenden Sie Verknüpfungen, um die gewünschten Ergebnisse zu erzielen. Mithilfe einer Verknüpfung gibt eine Abfrage nur die Datensätze aus der jeweils gewünschten Tabelle abhängig von der Beziehung dieser Tabellen zu anderen Tabellen in der Abfrage zurück. Dieser Artikel enthält konzeptionelle Informationen zu Verknüpfungen sowie eine Beschreibung der verschiedenen Verknüpfungsarten und deren Verwendung.
Inhalt dieses Artikels
Einführung
Relationale Datenbanken bestehen auf der untersten Ebene aus Tabellen, die logische Beziehungen miteinander aufweisen. Mithilfe von Beziehungen werden Tabellen in Feldern, die diese gemeinsam besitzen, verbunden. Eine Beziehung wird in einer Abfrage durch eine Verknüpfung dargestellt.
Wenn Sie einer Abfrage Tabellen hinzufügen, werden in Microsoft Office Access 2007 Verknüpfungen erstellt, die auf Beziehungen basieren, die zwischen den Tabellen definiert wurden. Sie können in Abfragen Verknüpfungen manuell erstellen, auch wenn diese keine bereits definierten Beziehungen darstellen. Wenn Sie (anstelle von oder zusätzlich zu Tabellen) andere Abfragen als Datenquellen für eine Abfrage verwenden, können Sie Verknüpfungen zwischen den Quellabfragen sowie zwischen diesen Abfragen und Tabellen erstellen, die als Datenquellen verwendet werden.
Verknüpfungen verhalten sich insofern wie Abfragekriterien, als dass sie Regeln festlegen, denen die Daten entsprechen müssen, um in die Abfragevorgänge integriert zu werden. Im Gegensatz zu Kriterien geben Verknüpfungen jedoch außerdem an, dass ein Zeilenpaar, das die Verknüpfungsbedingungen erfüllt, im Datensatz zu einer Zeile zusammengefügt wird.
Es gibt vier grundlegende Verknüpfungsarten: innere Verknüpfungen, äußere Verknüpfungen, Kreuzverknüpfungen und ungleiche Verknüpfungen. In diesem Artikel werden die einzelnen Arten und deren Verwendungszweck beschrieben, und es wird das Erstellen dieser Verknüpfungen erläutert.
Seitenanfang
Innere Verknüpfungen
Innere Verknüpfungen werden am häufigsten verwendet. Sie teilen einer Abfrage mit, dass Zeilen aus einer der verknüpften Tabellen Zeilen in der anderen Tabelle basierend auf den Daten in den verknüpften Feldern entsprechen. Wenn eine Abfrage mit einer inneren Verknüpfung ausgeführt wird, werden nur die Zeilen in die Abfragevorgänge eingeschlossen, in denen ein Wert vorhanden ist, den beide verknüpfte Tabellen gemeinsam aufweisen.
Verwendungszweck einer inneren Verknüpfung
Verwenden Sie eine innere Verknüpfung, wenn nur die Zeilen aus beiden Tabellen in der Verknüpfung zurückgegeben werden sollen, die im Verknüpfungsfeld eine Übereinstimmung aufweisen.
Verwendung einer inneren Verknüpfung
Meist ist keine Aktion erforderlich, um eine innere Verknüpfung zu verwenden. Wenn Sie im Dialogfeld "Beziehungen" (Dialogfeld "Beziehungen": Ein Fenster, in dem Sie Beziehungen zwischen Tabellen und Abfragen anzeigen, erstellen und ändern können.) bereits Beziehungen zwischen Tabellen erstellt haben, werden beim Hinzufügen verknüpfter Tabellen in der Entwurfsansicht (Entwurfsansicht: Ein Fenster, in dem der Entwurf der folgenden Datenbankobjekte angezeigt wird: Tabellen, Abfragen, Formulare, Berichte, Makros und Datenzugriffsseiten. In der Entwurfsansicht können Sie neue Datenbankobjekte erstellen und den Entwurf vorhandener Objekte ändern.) der Abfrage automatisch innere Verknüpfungen von Access erstellt. Wenn die referenzielle Integrität (Referenzielle Integrität: Regeln, deren Einhaltung beim Eingeben oder Löschen von Datensätzen überprüft wird, um die definierten Beziehungen zwischen Tabellen beizubehalten.) aktiviert ist, wird in Access oberhalb der Verknüpfungslinie eine "1" zur Kennzeichnung der Tabelle auf der "1"-Seite einer 1:n-Beziehung (1:n-Beziehung: Eine Verbindung zwischen zwei Tabellen, bei der der Primärschlüsselwert jedes Datensatzes in der Mastertabelle mit dem Wert im entsprechenden Feld bzw. den entsprechenden Feldern von mehreren Datensätzen in der verknüpften Tabelle übereinstimmt.) und das Symbol für Unendlichkeit (∞) zur Kennzeichnung der Tabelle auf der "n"-Seite angezeigt.
Auch wenn Sie noch keine Beziehungen erstellt haben, werden von Access beim Hinzufügen zweier Tabellen zu einer Abfrage, die beide ein Feld mit gleichem oder kompatiblem Datentyp enthalten und in denen eines der Verknüpfungsfelder ein Primärschlüssel (Primärschlüssel: Eines oder mehrere Felder [Spalten], die die einzelnen Datensätze in einer Tabelle eindeutig identifizieren. Ein Primärschlüssel lässt keine Null-Werte zu und muss immer einen eindeutigen Index haben. Ein Primärschlüssel wird verwendet, um eine Beziehung zwischen einer Tabelle und den Fremdschlüsseln in anderen Tabellen zu erstellen.) ist, automatisch innere Verknüpfungen erstellt. In diesem Fall werden die "1"- und die "n"-Seite jedoch nicht gekennzeichnet, da keine referenzielle Integrität gefordert ist.
Wenn Sie der Abfrage Abfragen hinzufügen, und keine Beziehungen zwischen diesen Abfragen erstellt haben, werden nicht automatisch innere Verknüpfungen zwischen diesen Abfragen oder zwischen Abfragen und Tabellen von Access erstellt. Sie müssen sie im Allgemeinen selbst erstellen. Sie erstellen eine innere Verknüpfung, indem Sie ein Feld aus einer Datenquelle in ein Feld in der anderen Datenquelle ziehen. In Access wird eine Linie zwischen den beiden Feldern angezeigt, um zu zeigen, dass eine Verknüpfung erstellt worden ist.
SQL-Syntax für eine innere Verknüpfung
Innere Verknüpfungen werden in SQL in der FROM-Klausel, wie im Folgenden beschrieben, angegeben:FROM Tabelle1 INNER JOIN Tabelle2 ON Tabelle1.Feld1 Vergleichsoperator Tabelle2.Feld2
Die INNER JOIN-Anweisung besteht aus den folgenden Teilen:
| Teil |
Beschreibung |
| Tabelle1, Tabelle2 |
Die Namen der Tabellen, aus denen Datensätze zusammengefasst werden. |
| Feld1, Feld2 |
Die Namen der Felder, die miteinander verknüpft werden. Falls es sich nicht um numerische Felder handelt, müssen die Felder denselben Datentyp (Datentyp: Die Eigenschaft eines Felds, die bestimmt, welche Art von Daten das Feld aufnehmen kann. Als Datentypen sind Währungs- und Datumstypen sowie "Boolean", "Integer", "Long", "Single", "Double", "String" und "Variant" (Standardwert) verfügbar.) aufweisen und dieselben Daten enthalten. Es ist jedoch nicht erforderlich, dass sie denselben Namen besitzen. |
| Vergleichsoperator |
Ein beliebiger relationaler Vergleichsoperator: "=," "<," ">," "<=," ">=," oder "<>". |
Weitere Informationen zur Syntax innerer Verknüpfungen finden Sie im Thema INNER JOIN-Vorgang.
Seitenanfang
Äußere Verknüpfung
Äußere Verknüpfungen teilen einer Abfrage mit, dass die Abfrage trotz genauer Entsprechung einiger Zeilen auf beiden Seiten der Verknüpfung alle Zeilen aus einer Tabelle und außerdem die Zeilen aus der anderen Tabelle enthalten muss, die einen gemeinsamen Wert auf beiden Seiten der Verknüpfung aufweisen.
Äußere Verknüpfungen können linke äußere Verknüpfungen oder rechte äußere Verknüpfungen sein. In einer linken äußeren Verknüpfung enthält die Abfrage alle Zeilen aus der ersten Tabelle in der SQL-Anweisung FROM-Klausel und nur jene Zeilen aus anderen Tabellen, in denen das Verknüpfungsfeld für beide Tabellen geltende Werte enthält. In einer rechten äußeren Verknüpfung enthält die Abfrage alle Zeilen aus der zweiten Tabelle in der SQL-Anweisung FROM-Klausel und nur jene Zeilen aus anderen Tabellen, in denen das Verknüpfungsfeld Werte enthält, die für beide Tabellen gelten.
Hinweis Es lässt sich problemlos feststellen, welche Tabelle die linke oder rechte Tabelle in einer gegebenen Verknüpfung ist, indem Sie auf die Verknüpfung doppelklicken und dann im Dialogfeld Verknüpfungseigenschaften nachsehen. Sie können auch zur SQL-Ansicht wechseln und die FROM-Klausel untersuchen.
Da einige der Zeilen auf einer Seite einer äußeren Verknüpfung keine entsprechenden Zeilen aus der anderen Tabelle aufweisen, sind einige der Felder, die in den Abfrageergebnissen aus dieser anderen Tabelle zurückgegeben werden, bei nicht übereinstimmenden Zeilen leer.
Verwendungszweck einer äußeren Verknüpfung
Verwenden Sie eine äußere Verknüpfung, wenn alle Zeilen aus einer der Tabellen in der Verknüpfung in den Ergebnissen enthalten sein sollen, und wenn die Abfrage nur die Zeilen aus der anderen Tabelle zurückgeben soll, die mit der ersten Tabelle im Verknüpfungsfeld übereinstimmen.
Verwendung einer äußeren Verknüpfung
Äußere Verknüpfungen werden durch Ändern innerer Verknüpfungen erstellt.
Ändern einer inneren Verknüpfung in eine äußere Verknüpfung
- Doppelklicken Sie in der Entwurfsansicht der Abfrage auf die Verknüpfung, die Sie ändern möchten.
Das Dialogfeld Verknüpfungseigenschaften wird angezeigt.
- Beachten Sie im Dialogfeld Verknüpfungseigenschaften die Auswahlmöglichkeiten neben Option 2 und Option 3.
- Klicken Sie auf die gewünschte Option, und klicken Sie dann auf OK.
- In Access werden die Verknüpfung sowie ein Pfeil angezeigt, der von der Datenquelle, in der alle Zeilen enthalten sind, auf die Datenquelle zeigt, in der nur die Zeilen enthalten sind, die die Verknüpfungsbedingung erfüllen.
SQL-Syntax für eine äußere Verknüpfung
Äußere Verknüpfungen werden in SQL in der FROM-Klausel, wie im Folgenden beschrieben, angegeben:FROM Tabelle1 [ LEFT | RIGHT ] JOIN Tabelle2
ON Tabelle1.Feld1 Vergleichsoperator Tabelle2.Feld2
Die LEFT JOIN- und RIGHT JOIN-Vorgänge bestehen aus den folgenden Teilen:
| Teil |
Beschreibung |
| Tabelle1, Tabelle2 |
Die Namen der Tabellen, aus denen Datensätze zusammengefasst werden. |
| Feld1, Feld2 |
Die Namen der Felder, die miteinander verknüpft werden. Die Felder müssen denselben Datentyp (Datentyp: Die Eigenschaft eines Felds, die bestimmt, welche Art von Daten das Feld aufnehmen kann. Als Datentypen sind Währungs- und Datumstypen sowie "Boolean", "Integer", "Long", "Single", "Double", "String" und "Variant" (Standardwert) verfügbar.) aufweisen und dieselben Daten enthalten. Es ist jedoch nicht erforderlich, dass sie denselben Namen besitzen. |
| Vergleichsoperator |
Ein beliebiger relationaler Vergleichsoperator: "=," "<," ">," "<=," ">=," oder "<>". |
Weitere Informationen zur Syntax äußerer Verknüpfungen finden Sie im Thema LEFT JOIN- und RIGHT JOIN-Vorgang.
Seitenanfang
Kreuzverknüpfungen
Kreuzverknüpfungen unterscheiden sich von inneren und äußeren Verknüpfungen insofern, als dass sie in Office Access 2007 nicht explizit dargestellt werden. Bei einer Kreuzverknüpfung wird jede Zeile aus einer Tabelle mit jeder Zeile einer anderen Tabelle kombiniert, wodurch ein so genanntes Kreuzprodukt oder kartesisches Produkt entsteht. Jedes Mal, wenn Sie eine Abfrage mit Tabellen ausführen, die nicht explizit verknüpft sind, entsteht ein Kreuzprodukt. Kreuzprodukte entstehen in der Regel unbeabsichtigt. Es gibt jedoch auch Situationen, in denen sie hilfreich sein können.
Verwendungszweck einer Kreuzverknüpfung
Wenn Sie jede mögliche Zeilenkombination zwischen zwei Tabellen oder Abfragen prüfen möchten, verwenden Sie eine Kreuzverknüpfung. Angenommen, Ihr Unternehmen hatte ein überdurchschnittlich gutes Jahr, und Sie überlegen, Ihren Kunden Rabatte zu gewähren. Sie können eine Abfrage erstellen, mit der die Bestellungen der einzelnen Kunden zusammengefasst werden, eine kleine Tabelle mit verschiedenen möglichen Rabattsätzen erstellen und beides in einer weiteren Abfrage kombinieren, die eine Kreuzverknüpfung durchführt. So entsteht eine Abfrage, die für die einzelnen Kunden hypothetische Rabatte anzeigt.
Verwendung einer Kreuzverknüpfung
Eine Kreuzverknüpfung entsteht jedes Mal, wenn Sie Tabellen oder Abfragen in eine Abfrage einschließen und nicht mindestens eine explizite Verknüpfung für jede Tabelle oder Abfrage erstellen. In Access werden die einzelnen Zeilen aus den jeweiligen Tabellen oder Abfragen kombiniert, die nicht explizit mit einer anderen Tabelle oder Abfrage verknüpft sind, mit den jeweils anderen Zeilen im Ergebnis. Betrachten Sie das Rabattszenario aus dem vorherigen Abschnitt. Angenommen, Sie haben 91 Kunden, und Sie möchten fünf mögliche Rabattsätze betrachten. Dann ergibt die Kreuzverknüpfung 455 Zeilen (das Produkt aus 91 und 5).
Wie Sie sich vielleicht vorstellen können, können unbeabsichtigte Kreuzverknüpfungen eine große Anzahl von Zeilen im Abfrageergebnis hervorbringen. Außerdem sind diese Ergebnisse im Allgemeinen sinnlos. Denn, wenn Sie nicht wirklich alle Zeilen mit den jeweils anderen Zeilen kombinieren möchten, ergeben die meisten kombinierten Zeilen, die im Ergebnis angezeigt werden, keinen Sinn. Und schließlich nimmt die Ausführung von Abfragen mit unbeabsichtigten Kreuzverknüpfungen viel Zeit in Anspruch.

Eine unbeabsichtigte Kreuzverknüpfung in der Entwurfsansicht einer Abfrage.

Die eingekreisten Felder müssen miteinander verknüpft werden.

Das Kreuzprodukt, das von der unbeabsichtigten Kreuzverbindung zurückgegeben wird, ist oben abgebildet.

Beachten Sie die sehr große Anzahl von Datensätzen.

Die Ergebnisse nach dem Erstellen der korrigierten Verknüpfung.

Die Anzahl von Datensätzen ist nun deutlich geringer.
Seitenanfang
Ungleiche Verknüpfungen
Verknüpfungen müssen nicht auf der Äquivalenz der verknüpften Felder basieren. Eine Verknüpfung kann auf einem Vergleichsoperator wie "größer als" (>), "kleiner als" (<) oder "ungleich" (<>) basieren. Verknüpfungen, die nicht auf der Äquivalenz basieren, werden als ungleiche Verknüpfungen bezeichnet.
Verwendungszweck einer ungleichen Verknüpfung
Wenn Sie die Zeilen zweier Datenquellen basierend auf Feldwerten kombinieren möchten, die nicht gleich sind, verwenden Sie eine ungleiche Verknüpfung. Ungleiche Verknüpfungen basieren in der Regel auf den Vergleichsoperatoren "größer als" (>), "kleiner als" (<), "größer als oder gleich" (>=) oder "kleiner als oder gleich" (<=). Ungleiche Verknüpfungen, die auf dem Operator "ungleich" (<>) basieren, können nahezu ebenso viele Zeilen wie Kreuzverknüpfungen zurückgeben, wodurch die Interpretation der Ergebnisse schwierig wird.
Verwendung einer ungleichen Verknüpfung
Ungleiche Verknüpfungen werden in der Entwurfsansicht nicht unterstützt. Wenn Sie eine ungleiche Verknüpfung verwenden möchten, müssen Sie die SQL-Ansicht verwenden. Sie können jedoch eine Verknüpfung in der Entwurfsansicht erstellen, zur SQL-Ansicht wechseln, den Vergleichsoperator "ist gleich" (=) suchen und durch den gewünschten Operator ersetzen. Danach können Sie die Abfrage nur dann wieder in der Entwurfsansicht öffnen, wenn Sie zuvor den Vergleichsoperator in der SQL-Ansicht wieder durch den Operator "ist gleich" (=) ersetzen.
Seitenanfang
Entfernen einer Verknüpfung
Wenn Sie eine Verknüpfung versehentlich erstellt haben, z. B. eine Verknüpfung zwischen zwei Feldern mit verschiedenen Datentypen, können Sie die Verknüpfung löschen. So löschen Sie die Verknüpfung:
- Klicken Sie im Entwurfsbereich der Abfrage auf die Verknüpfung, die entfernt werden soll.
- Drücken Sie die ENTF-TASTE.
-Oder-
- Klicken Sie im Entwurfsbereich der Abfrage mit der rechten Maustaste auf die Verknüpfung, die entfernt werden soll, und klicken Sie dann auf Löschen.
Seitenanfang