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:






