SQL JOIN

SQL Join wird verwendet, um Daten aus zwei oder mehr Tabellen abzurufen, die auf der Beziehung zwischen den Spalten dieser Tabellen basieren.

Join und Schlüssel

Manchmal müssen wir, um vollständige Ergebnisse zu erhalten, Daten aus zwei oder mehr Tabellen abrufen. Wir müssen dann eine Join ausführen.

Tabellen in der Datenbank können durch Schlüssel miteinander verbunden werden. Ein Primärschlüssel (Primary Key) ist eine Spalte, in der jeder Wert in jeder Zeile einzigartig ist. In der Tabelle ist jeder Wert des Primärschlüssels einzigartig. Das Ziel ist es, die Daten zwischen Tabellen zu verknüpfen, ohne dass alle Daten in jeder Tabelle wiederholt werden müssen.

Sehen Sie sich die Tabelle "Persons" an:

Id_P LastName FirstName Adresse Stadt
1 Adams John Oxford Straße London
2 Bush George Fifth Avenue New York
3 Carter Thomas Changan Straße Peking

Bitte beachten Sie, dass die Spalte "Id_P" der Tabelle "Persons" der Primärschlüssel ist. Dies bedeutet, dass keine zwei Zeilen denselben Id_P haben können. Selbst wenn die Namen zweier Personen vollständig gleich sind, kann Id_P sie unterscheiden.

Nächste sehen Sie die Tabelle "Orders":

Id_O OrderNo Id_P
1 77895 3
2 44678 3
3 22456 1
4 24562 1
5 34764 65

Bitte beachten Sie, dass die Spalte "Id_O" der Tabelle "Orders" der Primärschlüssel ist und die Spalte "Id_P" in der Tabelle "Orders" verwendet wird, um auf die Tabelle "Persons" zu verweisen, ohne deren genauen Namen zu verwenden.

Bitte beachten Sie, dass die Spalte "Id_P" die beiden obigen Tabellen verbindet.

Verweis auf zwei Tabellen

Wir können Daten aus zwei Tabellen abrufen, indem wir auf zwei Tabellen verweisen:

Wer hat welche Produkte bestellt?

SELECT Personen.LastName, Personen.FirstName, Orders.OrderNo
FROM Personen, Orders
WHERE Personen.Id_P = Orders.Id_P 

Ergebnisliste:

LastName FirstName OrderNo
Adams John 22456
Adams John 24562
Carter Thomas 77895
Carter Thomas 44678

SQL JOIN - Verwendung von Join

Neben der oben genannten Methode können wir auch das Schlüsselwort JOIN verwenden, um Daten aus zwei Tabellen abzurufen.

Wenn wir alle Bestellungen aller Personen auflisten möchten, können wir den folgenden SELECT-Befehl verwenden:

SELECT Personen.LastName, Personen.FirstName, Orders.OrderNo
FROM Personen
INNER JOIN Orders
ON Personen.Id_P = Orders.Id_P
ORDER BY Personen.LastName

Ergebnisliste:

LastName FirstName OrderNo
Adams John 22456
Adams John 24562
Carter Thomas 77895
Carter Thomas 44678

Verschiedene SQL JOIN

Neben dem INNER JOIN (Inner Join), das wir in den obigen Beispielen verwendet haben, können wir auch andere Arten von Verbindungen verwenden.

Nachstehend werden die verfügbaren JOIN-Typen und die Unterschiede zwischen ihnen aufgelistet.

  • JOIN: Es wird eine Zeile zurückgegeben, wenn mindestens eine Übereinstimmung in der Tabelle vorliegt
  • LEFT JOIN: Selbst wenn keine Übereinstimmung in der rechten Tabelle vorliegt, werden alle Zeilen aus der linken Tabelle zurückgegeben
  • RIGHT JOIN: Selbst wenn keine Übereinstimmung in der linken Tabelle vorliegt, werden alle Zeilen aus der rechten Tabelle zurückgegeben
  • FULL JOIN: Es wird eine Zeile zurückgegeben, wenn in mindestens einem der Tabellen eine Übereinstimmung vorliegt