SQL INNER JOIN (Deutsch)

Zusammenfassung: In diesem Lernprogramm erfahren Sie, wie Sie Daten aus mehreren Tabellen mithilfe der SQL INNER JOIN-Anweisung abfragen.

Im vorherigen Lernprogramm haben Sie gelernt, wie Sie mit der SELECT-Anweisung Daten aus einer einzelnen Tabelle abfragen. Sie möchten jedoch häufig Daten aus mehreren Tabellen abfragen, um eine vollständige Ergebnismenge für die Analyse zu erhalten. Zum Abfragen von Daten aus mehreren Tabellen verwenden Sie Join-Anweisungen.

SQL bietet verschiedene Arten von Joins, z. B. innere Joins, äußere Joins (linker äußerer Join oder linker Join, rechter äußerer Join oder rechter Join und vollständiger äußerer Join ) und selbst beitreten. In diesem Tutorial zeigen wir Ihnen, wie Sie die INNER JOIN -Klausel verwenden.

SQL INNER JOIN-Syntax

Im Folgenden wird INNER JOIN -Syntax zum Verbinden zweier Tabellen:

1
2
3
4
5

SELECT
Spalte1, Spalte2
FROM
Tabelle_1
INNER JOIN Tabelle_2 ON join_condition;

Lassen Sie uns die obige Syntax genauer untersuchen:

  • Die table_1 und table_2 werden als verbundene Tabellen bezeichnet.
  • Für jede Zeile In der table_1 findet die Abfrage die entsprechende Zeile in der table_2, die die Join-Bedingung erfüllt. Wenn die entsprechende Zeile gefunden wird, gibt die Abfrage eine Zeile zurück, die Daten aus beiden Tabellen enthält. Andernfalls wird die nächste Zeile in table_1 untersucht, und dieser Vorgang wird fortgesetzt, bis alle Zeilen in table_1 untersucht wurden.

Für das Verknüpfen von mehr als zwei Tabellen wurde dieselbe Logik angewendet.

Beispiele für SQL INNER JOIN

SQL INNER JOIN – Abfragen von Daten aus Beispiel für zwei Tabellen

In diesem Beispiel verwenden wir die Tabellen products und categories in der Beispieldatenbank. Das folgende Bild zeigt das Datenbankdiagramm.

Im obigen Diagramm:

  • Eine Kategorie kann viele Produkte enthalten.
  • Ein Produkt gehört zu einer und nur einer Kategorie.

Daher besteht zwischen den Zeilen in Tabelle und Zeilen in der Tabelle products. Die Verknüpfung zwischen den beiden Tabellen ist die Spalte categoryid.

Wir müssen die folgenden Daten aus beiden Tabellen abfragen:

  • productID, productName aus der Tabelle products.
  • categoryName aus der Tabelle categories.

Die folgende Abfrage ruft Daten aus beiden Tabellen ab:

1
2
3
4
5
6

SELECT
productID, productName, categoryName
FROM
Produkte
INNER JOIN
Kategorien ON category.categoryID = products.categoryID;

Die Verknüpfungsbedingung wird in der Klausel INNER JOIN nach dem Schlüsselwort ON als Ausdruck angegeben:

1

category.categoryID = products.categoryID

Für jede Zeile in der products findet die Abfrage eine entsprechende Zeile in der Tabelle categories mit derselben categoryid. Wenn zwischen zwei Zeilen in übereinstimmt In beiden Tabellen wird eine Zeile zurückgegeben, die Spalten enthält, die in der SELECT-Klausel angegeben sind, dh Produkt-ID, Produktname und Kategoriename. Andernfalls wird die nächste Zeile in der Tabelle products überprüft, um die passende Zeile in der Tabelle categories zu finden. Dieser Prozess wird fortgesetzt, bis die letzte Zeile der Produkttabelle untersucht wird.

SQL INNER JOIN – Abfragen von Daten aus drei Tabellen

Wir können dieselben Techniken zum Verknüpfen von drei Tabellen verwenden.Die folgende Abfrage wählt productID, productName, categoryName und aus den Tabellen products, categories und suppliers:

1
2
3
4
5
6
7
8
9
10
11

SELECT
productID,
productName,
categoryName,
Firmenname AS Lieferant
FROM
Produkte
INNER JOIN
Kategorien ON Kategorien. categoryID = products.categoryID
INNER JOIN
Lieferanten ON Supplier.supplierID = products.supplierID

Implizite SQL INNER JOIN

Es gibt eine andere Form der INNER JOIN, die als implizite innere Verknüpfung bezeichnet wird (siehe unten):

1
2
3
4
5
6
7

SELECT
column1, column2
FROM
table_1,
table_2
WHERE
join_condition;

In diesem Formular geben Sie alle verknüpften Tabellen in an die FROM -Klausel und setzen Sie die Join-Bedingung in die WHERE-Klausel der SELECT -Anweisung. Wir können das obige Abfragebeispiel mit dem impliziten INNER JOIN wie folgt umschreiben:

1
2
3
4
5
6
7

SELECT
Produkt-ID, Produktname, Kategoriename
FROM
Produkte,
Kategorien
WHERE
products.categoryID = category.categoryID;

Visualisieren Sie INNER JOIN mithilfe des Venn-Diagramms

Write a Comment

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.