JOINS in SQL Server: Tutorial mit Beispielen

Mit der JOIN-Anweisung können wir Daten aus mehr als einer Tabelle abrufen. Es gibt hauptsächlich 4 verschiedene Arten von JOINS in SQL Server. Wir werden alle JOINS lernen SQL Server mit Beispielen:

  • INNER JOIN/einfacher Join
  • LINKER ÄUSSERER JOIN/LINKER JOIN
  • RECHTER ÄUSSERER JOIN/RECHTER JOIN
  • KOMPLETTE AUSSENVERBINDUNG

INNER JOIN

Dieser SQL Server JOIN-Typ gibt Zeilen aus allen Tabellen zurück, in denen die Join-Bedingung erfüllt ist. Er verwendet die folgende Syntax:

SELECT columns
FROM table_1 
INNER JOIN table_2
ON table_1.column = table_2.column;

Zur Veranschaulichung verwenden wir die folgenden beiden Tabellen:

Schülertisch:

INNER JOIN

Gebührentabelle:

INNER JOIN

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 gibt Folgendes zurück:

INNER JOIN

Wir können den Studierenden mitteilen, wer ihren Beitrag bezahlt hat. Wir haben in beiden Tabellen die Spalte mit gemeinsamen Werten verwendet, die Zulassungsspalte.

LEFT OUTER JOIN

Dieser Join-Typ gibt alle Zeilen aus der linken Tabelle sowie Datensätze in 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 gibt Folgendes zurück:

LEFT OUTER JOIN

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 SQL Server gibt Folgendes zurück:

RECHTER ÄUSSERER JOIN

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

Dieser Join-Typ gibt alle Zeilen aus beiden Tabellen mit NULL-Werten zurück, wenn die JOIN-Bedingung nicht wahr 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 gibt das folgende Ergebnis für FULL OUTER JOINS-Abfragen zurück in SQL:

KOMPLETTE AUSSENVERBINDUNG