JOINS in SQL Server: Typen mit Beispielen
⚡ Intelligente Zusammenfassung
Mit JOINs in SQL Server werden Zeilen aus zwei oder mehr Tabellen anhand einer verknüpften Spalte kombiniert. Dabei werden INNER, LEFT OUTER, RIGHT OUTER und FULL OUTER Joins verwendet, um zu steuern, welche übereinstimmenden und nicht übereinstimmenden Zeilen im Ergebnis erscheinen.

Was sind Joins in SQL Server?
Daten können mithilfe der JOIN-Anweisung aus mehr als einer Tabelle abgerufen werden. SQL ServerEin JOIN kombiniert Zeilen aus zwei oder mehr Tabellen anhand einer gemeinsamen Spalte, meistens einer Spalte im Datensatz. Primärschlüssel abgestimmt auf FremdschlüsselIn SQL Server gibt es im Wesentlichen vier Arten von JOINs:
- INNER JOIN / einfacher Join
- LEFT OUTER JOIN / LEFT JOIN
- RIGHT OUTER JOIN / RIGHT JOIN
- KOMPLETTE AUSSENVERBINDUNG
Die folgende Tabelle fasst zusammen, welche Zeilen die einzelnen JOIN-Typen zurückgeben:
| JOIN-Typ | zurückgegebene Zeilen |
| INNER JOIN | Nur Zeilen, in denen die Verknüpfungsbedingung in beiden Tabellen erfüllt ist. |
| LEFT OUTER JOIN | Alle Zeilen aus der linken Tabelle sowie die entsprechenden Zeilen aus der rechten Tabelle (NULL-Werte, falls keine Übereinstimmung vorliegt). |
| RECHTER ÄUSSERER JOIN | Alle Zeilen aus der rechten Tabelle sowie die entsprechenden Zeilen aus der linken Tabelle (NULL-Werte, falls keine Übereinstimmung vorliegt). |
| KOMPLETTE AUSSENVERBINDUNG | Alle Zeilen aus beiden Tabellen, wobei NULL-Werte überall dort eingefügt werden, wo die Bedingung nicht erfüllt ist. |
Die folgenden Beispiele verwenden zwei TabellenDie Daten zu Studierenden und Gebühren wurden über die gemeinsame Spalte für die Zulassung verknüpft. Jeder Abschnitt erläutert einen JOIN-Typ mit seiner Syntax, einer Beispielabfrage und dem Ergebnis.
INNER JOIN
Diese Art von SQL Server JOIN gibt Zeilen aus allen Tabellen zurück, in denen die Verknüpfungsbedingung erfüllt ist. Die Syntax lautet wie folgt:
SELECT columns FROM table_1 INNER JOIN table_2 ON table_1.column = table_2.column;
Wir werden dies anhand der folgenden zwei Tabellen veranschaulichen. Die untenstehende Tabelle „Studenten“ listet jeden Studenten und seine Zulassungsnummer auf:
Die untenstehende Gebührentabelle zeigt den Betrag, der für jede Eintrittsnummer gezahlt wurde:
Der folgende Befehl demonstriert einen INNER JOIN in SQL Server anhand eines Beispiels:
SELECT Students.admission, Students.firstName, Students.lastName, Fee.amount_paid FROM Students INNER JOIN Fee ON Students.admission = Fee.admission
Der Befehl liefert folgendes Ergebnis, das nur die in beiden Tabellen vorhandenen Zulassungsnummern anzeigt:
Wir können erkennen, welche Studierenden ihre Gebühren bezahlt haben. Dazu haben wir die Spalte mit übereinstimmenden Werten in beiden Tabellen verwendet, nämlich die Zulassungsspalte.
LEFT OUTER JOIN
Diese Art von Join gibt alle Zeilen der linken Tabelle sowie die Datensätze der rechten Tabelle mit übereinstimmenden Werten zurück. Zum Beispiel:
SELECT Students.admission, Students.firstName, Students.lastName, Fee.amount_paid FROM Students LEFT OUTER JOIN Fee ON Students.admission = Fee.admission
Der Code liefert folgendes Ergebnis, keeping jeder Student, auch wenn kein Gebührennachweis übereinstimmt:
Die Datensätze ohne übereinstimmende Werte werden in den entsprechenden Spalten durch NULL-Werte ersetzt.
RECHTER ÄUSSERER JOIN
Dieser Join-Typ gibt alle Zeilen aus der rechten Tabelle zurück und nur diejenigen mit übereinstimmenden Werten in der linken Tabelle. Zum Beispiel:
SELECT Students.admission, Students.firstName, Students.lastName, Fee.amount_paid FROM Students RIGHT OUTER JOIN Fee ON Students.admission = Fee.admission
Die Anweisung für OUTER JOINS in SQL Server liefert folgendes Ergebnis:
Der Grund für die obige Ausgabe ist, dass alle Zeilen in der Gebührentabelle in der Studententabelle verfügbar sind, wenn sie in der Zulassungsspalte abgeglichen werden.
KOMPLETTE AUSSENVERBINDUNG
Diese Art von Join gibt alle Zeilen aus beiden Tabellen zurück, wobei NULL-Werte überall dort verwendet werden, wo die JOIN-Bedingung nicht erfüllt ist. Zum Beispiel:
SELECT Students.admission, Students.firstName, Students.lastName, Fee.amount_paid FROM Students FULL OUTER JOIN Fee ON Students.admission = Fee.admission
Der Code liefert für FULL OUTER JOIN-Abfragen folgendes Ergebnis zurück: SQL, indem jede Zeile aus beiden Tabellen kombiniert wird:






