INNER JOIN ist einer der am häufigsten verwendeten JOIN-Operationstypen in SQL. Es ermöglicht Ihnen, Daten aus mehreren Tabellen basierend auf einer bestimmten Bedingung zu kombinieren, die mit dem Schlüsselwort ON angegeben wird. INNER JOIN gibt nur die Zeilen zurück, die in beiden Tabellen übereinstimmen.
Betrachten wir zum Beispiel eine Situation, in der wir drei Tabellen haben: Customers, Orders und OrderDetails. Die Tabelle Customers enthält Kundeninformationen, die Tabelle Orders enthält Bestellinformationen und die Tabelle OrderDetails enthält Informationen zu Bestelldetails. Unsere Aufgabe ist es, eine Liste der Kunden zu erhalten, die Bestellungen abgegeben haben, und detaillierte Informationen zu jeder Bestellung.
Um dieses Problem zu lösen, verwenden wir die INNER JOIN-Operation, um die Tabellen Customers und Orders in einem gemeinsamen CustomerID-Feld zu kombinieren. Dann kombinieren wir die Tabellen Orders und OrderDetails nach dem Feld OrderID. Schließlich erhalten wir Daten, die unseren Bedingungen entsprechen, dh Kunden, die Bestellungen getätigt haben, und detaillierte Informationen zu jeder Bestellung.
Funktionsweise von INNER JOIN
Die Funktionsweise von INNER JOIN kann wie folgt erklärt werden:
- Es werden zwei oder mehr Tabellen ausgewählt, die Sie kombinieren möchten.
- Es wird eine Verknüpfung zwischen Tabellen über gemeinsame Spalten hergestellt, bei denen es sich um Verknüpfungsschlüssel handelt.
- Tabellen werden nach der Bedingung INNER JOIN zusammengeführt. Das Ergebnis ist eine neue "virtuelle" Tabelle, die nur Zeilen enthält, in denen die Werte der Verknüpfungsschlüssel übereinstimmen.
- Es werden die Spalten ausgewählt, die als Ergebnis des INNER JOIN ausgegeben werden sollen.
- Die resultierende Tabelle wird als Abfrageergebnis zurückgegeben.
Vorteile von INNER JOIN:
- Ermöglicht das Zusammenführen von Tabellen, um verwandte Informationen aus verschiedenen Datenquellen abzurufen.
- Filtert nur die Informationen, die der Join-Bedingung entsprechen.
- Ermöglicht die effiziente Verknüpfung und Analyse von Daten aus verschiedenen Tabellen.
- Ermöglicht die Anwendung komplexer Join-Bedingungen, um die benötigten Informationen zu erhalten.
Durch die Verwendung von INNER JOIN können Sie die Flexibilität und Effizienz Ihrer Daten verbessern, indem Sie Tabellen nach gemeinsamen Werten zusammenführen und die benötigten Informationen aus verschiedenen Datenquellen abrufen können.
Beispiele für die Verwendung von INNER JOIN SQL
| Benutzername | Bestellnummer | Ware |
|---|---|---|
| Alexej | 1 | Telefon |
| Alexej | 1 | Kopfhörer |
| Maria | 2 | Kaffeemaschine |
| Maria | 2 | Kaffee |
| Sergej | 3 | Monitor |
| Sergej | 3 | Die Tastatur |
In diesem Beispiel wird der INNER JOIN verwendet, um die Tabellen "Benutzer" und "Aufträge" mit dem Feld "Auftragsnummer" zu verbinden. Der INNER JOIN wird dann verwendet, um die resultierende Tabelle über das Feld "Waren" mit der Tabelle "Waren" zu verbinden. Dadurch erhalten Sie vollständige Informationen über Benutzer, ihre Bestellungen und Waren.
Die Abfrage für einen INNER JOIN lautet wie folgt:
SELECT Пользователи.Имя, Заказы.Номер, Товары.НазваниеFROM ПользователиINNER JOIN ЗаказыON Пользователи.Номер = Заказы.НомерINNER JOIN ТоварыON Заказы.Товар = Товары.Товар;
Als Ergebnis dieser Abfrage erhalten wir die folgende Tabelle:
| Benutzername | Bestellnummer | Ware |
|---|---|---|
| Alexej | 1 | Telefon |
| Alexej | 1 | Kopfhörer |
| Maria | 2 | Kaffeemaschine |
| Maria | 2 | Kaffee |
| Sergej | 3 | Monitor |
| Sergej | 3 | Die Tastatur |
Mit INNER JOIN können Sie daher Daten aus verschiedenen Tabellen basierend auf bestimmten Join-Bedingungen zusammenführen, um vollständige Informationen zu verknüpften Datensätzen zu erhalten.
INNER JOIN mit 3 Tabellen
INNER JOIN in SQL wird verwendet, um Daten aus mehreren Tabellen zusammenzuführen. Sie können nur die Zeilen auswählen, die in beiden Tabellen die entsprechenden Werte aufweisen. Betrachten Sie ein Beispiel für einen INNER JOIN mit drei Tabellen.
Nehmen wir an, wir haben drei Tabellen: "Benutzer", "Bestellungen" und "Waren". Die Tabelle "Benutzer" enthält Informationen zu Benutzern, die Tabelle "Bestellungen" enthält Informationen zu Bestellungen und die Tabelle "Produkte" enthält Informationen zu Artikeln.
Um diese Tabellen zu kombinieren, können wir die folgende SQL-Abfrage mit INNER JOIN verwenden:
SELECT Пользователи.Имя, Заказы.НомерЗаказа, Товары.НазваниеFROM ПользователиINNER JOIN Заказы ON Пользователи.Идентификатор = Заказы.ИдентификаторПользователяINNER JOIN Товары ON Заказы.ИдентификаторТовара = Товары.Идентификатор
In dieser Abfrage wählen wir den Benutzernamen aus der Tabelle "Benutzer", die Bestellnummer aus der Tabelle "Bestellungen" und den Produktnamen aus der Tabelle "Produkte" aus. INNER JOIN kombiniert diese Tabellen nach Benutzer-ID und Artikel-ID.
Ein INNER JOIN mit drei Tabellen ermöglicht es uns also, die Informationen zu erhalten, die zwischen diesen Tabellen korreliert sind. Dies kann beispielsweise nützlich sein, um eine Auftragsliste mit Benutzernamen und Produktnamen anzuzeigen.
Funktionsweise von INNER JOIN mit 3 Tabellen
Angenommen, wir haben drei Tabellen: Kunden (mit Kundendaten), Bestellungen (mit Bestellinformationen) und Products (mit Produktinformationen). Unser Ziel ist es, diese Tabellen zu kombinieren, um Informationen über die Kunden zu erhalten, die Bestellungen getätigt haben, und die von ihnen bestellten Produkte.
Dazu können wir den INNER JOIN Operator verwenden, um die Tabellen Customers und Orders über die gemeinsame Spalte customer_id zu verbinden und dann den INNER JOIN mit der Tabelle Products unter Verwendung der gemeinsamen Spalte product_id zu wiederholen. Das Ergebnis ist eine neue Tabelle, die Informationen zu Kunden, Bestellungen und Produkten enthält.
Die folgende SQL-Abfrage zeigt beispielsweise, wie Sie einen INNER JOIN verwenden, um drei Tabellen zu verbinden:
SELECT Customers.customer_id, Customers.name, Orders.order_id, Products.product_id, Products.nameFROM CustomersINNER JOIN Orders ON Customers.customer_id = Orders.customer_idINNER JOIN Products ON Orders.product_id = Products.product_id;
Diese Abfrage wählt die Spalten customer_id und name aus der Tabelle Customers, die Spalten order_id aus der Tabelle Orders und die Spalten product_id und name aus der Tabelle Products aus. Anschließend werden diese Tabellen mit INNER JOIN-Anweisungen und Compliance-Bedingungen kombiniert und eine neue Tabelle zurückgegeben, die Informationen zu Kunden, Bestellungen und Produkten enthält.
Die Verwendung eines INNER JOIN mit drei Tabellen kann nützlich sein, um Daten zu analysieren, Berichte zu erstellen oder Entscheidungen basierend auf verknüpften Daten aus verschiedenen Tabellen zu treffen.
Ausführungsreihenfolge für INNER JOIN mit 3 Tabellen
Mit einem INNER JOIN in SQL können Sie Daten aus zwei oder mehr Tabellen gemäß einer Übereinstimmungsbedingung zusammenführen. Wenn Sie einen INNER JOIN mit 3 Tabellen ausführen möchten, wird die Ausführungsreihenfolge etwas komplizierter, aber die Logik bleibt gleich.
Angenommen, wir haben drei Tabellen: "Benutzer" (Users), "Bestellungen" (Orders) und "Produkte" (Products). Die Tabelle "Benutzer" enthält Informationen zu registrierten Benutzern, die Tabelle "Bestellungen" enthält Informationen zu Bestellungen, die sie getätigt haben, und die Tabelle "Produkte" enthält Informationen über die Verfügbarkeit und den Wert von Waren.
Um einen INNER JOIN mit 3 Tabellen auszuführen, müssen wir die entsprechenden Beziehungen zwischen ihnen mit dem JOIN-Operator angeben:
SELECT * FROM Users INNER JOIN Orders ON Users.user_id = Orders.user_id INNER JOIN Products ON Orders.product_id = Products.product_id;
In diesem Beispiel kombinieren wir die Tabelle "Benutzer" mit der Tabelle "Bestellungen" nach dem Feld "user_id". Dann kombinieren wir das Ergebnis dieses Joins mit der Tabelle "Produkte" nach dem Feld "product_id". Das Ergebnis ist eine neue Tabelle, die Daten aus allen drei Quelltabellen enthält.
Mit diesem Ansatz erhalten Sie vollständige Informationen zu Bestellungen, einschließlich Benutzerdaten sowie Informationen zu den mit jeder Bestellung verknüpften Artikeln.
Die Verwendung eines INNER JOIN mit 3 Tabellen kann sehr nützlich sein, wenn Sie Daten aus mehreren Quellen zusammenführen möchten, um umfassende Informationen zu erhalten.
Es ist wichtig zu beachten, dass bei Verwendung von INNER JOIN mit 3 Tabellen die Reihenfolge der Joins wichtig ist. Die Reihenfolge, in der die Tabellen zusammengeführt werden, muss so sein, dass jede nachfolgende Tabelle über ein gemeinsames Feld mit der vorherigen Tabelle verknüpft ist.
Beispiele für die Verwendung von INNER JOIN SQL mit verschiedenen Anweisungen
WHERE-Anweisung:
Eine der am häufigsten verwendeten Anweisungen bei der Verwendung von INNER JOIN in SQL ist die WHERE-Anweisung. Es ermöglicht Ihnen, eine Bedingung für die Verbindung von zwei Tabellen festzulegen, um nur bestimmte Zeilen abzurufen.
Zum Beispiel haben wir die Tabellen "Kunden" und "Bestellungen" und möchten eine Liste der Kunden erhalten, die in einem bestimmten Monat Bestellungen getätigt haben:
SELECT Clients.Name, Orders.OrderNumberFROM ClientsINNER JOIN Orders ON Clients.ClientID = Orders.ClientIDWHERE MONTH(Orders.OrderDate) = 3;
ORDER BY-Anweisung:
Eine weitere nützliche Anweisung, die mit einem INNER JOIN verwendet werden kann, ist die ORDER BY-Anweisung. Es ermöglicht Ihnen, das Ergebnis einer Verbindung nach einer oder mehreren Spalten zu sortieren.
Zum Beispiel möchten wir eine Liste von Kunden und Informationen zu ihren Bestellungen erhalten, sortiert nach Bestelldatum in absteigender Reihenfolge:
SELECT Clients.Name, Orders.OrderNumber, Orders.OrderDateFROM ClientsINNER JOIN Orders ON Clients.ClientID = Orders.ClientIDORDER BY Orders.OrderDate DESC;
GROUP BY-Anweisung:
Eine weitere nützliche Anweisung, die mit einem INNER JOIN verwendet werden kann, ist die GROUP BY-Anweisung. Es ermöglicht Ihnen, das Ergebnis einer Verbindung nach einer oder mehreren Spalten zu gruppieren.
Zum Beispiel möchten wir eine Liste von Kunden und die Gesamtsumme ihrer Bestellungen erhalten, die nach Kunde gruppiert sind:
SELECT Clients.Name, SUM(Orders.TotalAmount) AS TotalAmountFROM ClientsINNER JOIN Orders ON Clients.ClientID = Orders.ClientIDGROUP BY Clients.Name;
Durch die Ausführung dieser INNER JOIN SQL-Anweisungen können wir aufgrund unterschiedlicher Bedingungen, Sortier- und Gruppierungsbedingungen viele Variationen von Datenkombinationen aus zwei Tabellen erhalten.
INNER JOIN mit der WHERE-Anweisung
Die SQL-Anweisung INNER JOIN wird verwendet, um Zeilen aus zwei oder mehr Tabellen basierend auf dem gemeinsamen Wert einer Schlüsselspalte zu verknüpfen. Wenn Sie zusätzliche Bedingungen zum Verknüpfen von Tabellen angeben möchten, können Sie die WHERE-Anweisung verwenden.
Beispiel für eine SQL-Abfrage mit INNER JOIN und WHERE:
SELECT Orders.OrderID, Customers.CustomerName, Orders.OrderDateFROM OrdersINNER JOIN Customers ON Orders.CustomerID = Customers.CustomerIDWHERE Orders.OrderDate BETWEEN '2025-01-01' AND '2025-12-31';
In diesem Beispiel kombinieren wir die beiden Tabellen "Orders" und "Customers" in der Spalte "CustomerID" und wählen nur die Zeilen aus, in denen das Bestelldatum ("OrderDate") im angegebenen Bereich "2025-01-01" und "2025-12-31" liegt.
Eine solche Abfrage ermöglicht es Ihnen, die OrderID nur für Kunden abzurufen, deren Bestelldatum innerhalb eines bestimmten Zeitraums liegt.
Ein INNER JOIN mit einer WHERE-Anweisung ermöglicht eine genauere Verbindung von Tabellen und das Filtern von Daten nach bestimmten Bedingungen.
INNER JOIN mit der IN-Anweisung
Mit einem INNER JOIN mit dem IN-Operator können Sie Tabellen nach einer Bedingung verbinden, die den Vergleich von Werten mit mehreren Werten aus einer anderen Tabelle beinhaltet. Diese Methode wird häufig zum Abrufen von Daten verwendet, die ein bestimmtes Kriterium erfüllen.
Angenommen, wir haben zwei Tabellen: "Kunden" und "Bestellungen". Die Tabelle "Kunden" enthält Kundeninformationen und die Tabelle "Bestellungen" enthält Informationen zu den von Kunden getätigten Bestellungen. Wir möchten alle Kunden finden, die Bestellungen für bestimmte Produkte auf der Liste abgegeben haben.
Um dies zu tun, können wir einen INNER JOIN mit einer IN-Anweisung wie folgt verwenden:
SELECT Клиенты.Имя, Заказы.ПродуктFROM КлиентыINNER JOIN Заказы ON Клиенты.ID = Заказы.ID_КлиентаWHERE Заказы.Продукт IN ('Продукт1', 'Продукт2', 'Продукт3')
In diesem Beispiel verbindet ein INNER JOIN die Tabellen "Kunden" und "Aufträge" mit einem ID-Feld, das beiden Tabellen gemeinsam ist. Mit dem IN-Operator können wir dann nur Datensätze auswählen, in denen der Wert des Felds "Produkt" einem der angegebenen Werte entspricht ('Produkt1', 'Produkt2', 'Produkt3').
Das Ergebnis dieser Abfrage ist eine Liste der Kunden und der zugehörigen Produkte, die sich in der Liste der angegebenen Werte befinden. Dies ermöglicht es uns, Daten, die unseren Kriterien entsprechen, einfach zu extrahieren.