Left Join und Inner Join

Diese Operation existiert in den Varianten INNER- LEFT- und RIGHT- JOIN und kombiniert Datensätze aus zwei Tabellen, sobald in einem in beiden Tabellen gemeinsam vorhandenen Feld (einem „Übereinstimmungsfeld“, wie zum Beispiel einem Primär- Fremdschlüsselfeld – Paar) Werte miteinander übereinstimmen.

Die Syntax für den INNER JOIN Operator lautet:
SELECT ... FROM Tabelle1 INNER JOIN Tabelle2 ON Tabelle1.Feld1 Vergleichsoperator Tabelle2.Feld2

Die INNER JOIN- Operation besteht aus folgenden Elementen:
Tabelle1, Tabelle2: Die Namen der Tabellen, aus denen Datensätze kombiniert werden.
Feld1, Feld2: Die Namen der Felder, die verknüpft werden. Wenn sie nicht numerisch sind, müssen die Felder denselben Datentyp haben und dieselbe Art von Daten enthalten, können aber unterschiedliche Namen haben.
Vergleichsoperator: Ein beliebiger relationaler Vergleichsoperator: "=", "<", ">", "<=", ">=" oder "<>".

Sie können eine INNER JOIN- Operation in jeder FROM- Klausel verwenden. Diese Operation ist die gebräuchlichste Art der Verknüpfung von Inhalten aus mehreren Tabellen. In dieser Verknüpfung werden Datensätze aus zwei Tabellen kombiniert, sobald übereinstimmende Werte in einem Feld gefunden werden, das in beiden Tabellen vorhanden ist (wie z.B. Primär- Fremdschlüsselpaare).
Sie können INNER JOIN in Abfragen auf den Tabellen "Kunden" und "Bestellungen" verwenden, um alle Kunden auszuwählen, die zumindest eine Bestellung abgegeben haben:

SELECT Kunden.Firma FROM Kunden INNER JOIN Bestellungen ON Kunden.[Kunden-Code] = Bestellungen.[Kunden-Code];

Wenn Sie aber alle Kunden (auch solche die keine Bestellungen abgegeben haben) auswählen wollen, müssen Sie die Inklusionsverknüpfung mit einer LEFT JOIN Operation so formulieren:

SELECT Kunden.Firma FROM Kunden LEFT JOIN Bestellungen ON Kunden.[Kunden-Code] = Bestellungen.[Kunden-Code];

Wenn Sie alle Bestellungen (auch solche, die keinem Kunden zugeordnet sind ) auswählen wollen, können Sie mit einer RIGHT JOIN- Operation eine Inklusionsverknüpfung erstellen:

SELECT Kunden.Firma FROM Kunden RIGHT JOIN Bestellungen ON Kunden.[Kunden-Code] = Bestellungen.[Kunden-Code];

Eine Inklusionsverknüpfung ist eine Verknüpfung, in der alle Datensätze einer Tabelle zur Resultatmenge der Abfrage hinzugefügt werden, und zwar auch dann, wenn keine übereinstimmenden Werte im verknüpften Feld aus der zweiten Tabelle vorhanden sind. Datensätze aus der zweiten Tabelle werden nur dann mit Datensätzen aus der ersten Tabelle kombiniert, wenn die verknüpften Felder übereinstimmende Werte enthalten. Null- Datensätze werden verknüpft, wenn es keine Übereinstimmung gibt.
Mit einer LEFT JOIN- Operation können Sie eine linke Inklusionsverknüpfung erstellen. Linke Inklusionsverknüpfungen schließen alle Datensätze aus der ersten (linken) Tabelle von zwei Tabellen ein, auch wenn keine entsprechenden Werte für Datensätze in der zweiten (rechten) Tabelle vorhanden sind.
Mit einer RIGHT JOIN- Operation können Sie eine rechte Inklusionsverknüpfung erstellen. Rechte Inklusionsverknüpfungen schließen alle Datensätze aus der zweiten (rechten) Tabelle von zwei Tabellen ein, auch wenn keine übereinstimmenden Werte für Datensätze in der ersten (linken) Tabelle vorhanden sind.
Im grafischen Teil des Abfragegenerators können Sie Inklusionsverknüpfungen erzeugen, indem Sie auf einen „Beziehungsstrich“ zwischen zwei Tabellen doppelklicken und im Dialog „Verknüpfungseigenschaften“ den Typ des JOIN einstellen (1 = INNER-, 2 = LEFT- und 3 = RIGHT JOIN):

Wenn Sie mit JOINs Felder verknüpfen möchten, die Daten vom Typ Memo oder OLE- Objekt enthalten, tritt ein Fehler auf.
Sie können zwei beliebige numerische Felder ähnlichen Typs verknüpfen. Sie können z. B. Felder vom Typ Autowert mit Feldern des Typs Long verknüpfen, da diese einen ähnlichen Datentyp haben. Sie können jedoch keine Felder mit den Typen Single und Double verknüpfen.


Kopiert aus http://schule.aquasonic.ch/gibb/Sem3/Modul104

User: schule
Pw: 1234
 

Neue Beiträge

Zurück