Inner Join

0

Innerer Join

Das Schlüsselwort INNER JOIN wählt Datensätze aus, die in beiden Tabellen übereinstimmende Werte aufweisen.

Schauen wir uns eine Auswahl aus der Produkttabelle an:

ProduktIDProduktnameKategorieIDPreis
1Chais118
2Chang119
3Aniseed Syrup210

Und eine Auswahl aus der Kategorientabelle:

KategorieIDKategorienameBeschreibung
1GetränkeErfrischungsgetränke, Kaffee, Tee, Bier und Ale
2GewürzeSüße und herzhafte Saucen, Relishes, Brotaufstriche und Gewürze
3SüßwarenDesserts, Süßigkeiten und süßes Brot

Wir verknüpfen die Tabelle „Products“ mit der Tabelle „Categories“, indem wir das Feld „CategoryID“ aus beiden Tabellen verwenden:

Beispiel

Verbinden Sie Produkte und Kategorien mit dem Schlüsselwort INNER JOIN:

SELECT ProductID, ProductName, CategoryName
FROM Products
INNER JOIN Categories ON Products.CategoryID = Categories.CategoryID;

Hinweis: Das Schlüsselwort INNER JOIN gibt nur Zeilen zurück, die in beiden Tabellen übereinstimmen. Das bedeutet, dass ein Datensatz im Ergebnis nicht zurückgegeben wird, wenn Sie ein Produkt ohne CategoryID oder mit einer CategoryID haben, die in der Tabelle „Categories“ nicht vorhanden ist.

Syntax

SELECT column_name(s)
FROM table1
INNER JOIN table2
ON table1.column_name = table2.column_name;

Benennen der Spalten

Es empfiehlt sich, beim Angeben von Spalten in der SQL-Anweisung den Tabellennamen mit einzuschließen.

Beispiel

Geben Sie die Tabellennamen an:

SELECT Products.ProductID, Products.ProductName, Categories.CategoryName
FROM Products
INNER JOIN Categories ON Products.CategoryID = Categories.CategoryID;

Das obige Beispiel funktioniert ohne Angabe von Tabellennamen, da keiner der angegebenen Spaltennamen in beiden Tabellen vorhanden ist. Wenn Sie versuchen, CategoryID in die SELECT Anweisung aufzunehmen, erhalten Sie eine Fehlermeldung, wenn Sie den Tabellennamen nicht angeben (da CategoryID in beiden Tabellen vorhanden ist).

JOIN oder INNER JOIN

JOIN und INNER JOIN geben dasselbe Ergebnis zurück.

INNER ist der Standard Jointyp für JOIN. Wenn Sie also JOIN schreiben, schreibt der Parser tatsächlich INNER JOIN.

Beispiel

JOIN ist dasselbe wie INNER JOIN:

SELECT Products.ProductID, Products.ProductName, Categories.CategoryName
FROM Products
JOIN Categories ON Products.CategoryID = Categories.CategoryID;

Join Three Tables

Die folgende SQL Anweisung wählt alle Bestellungen mit Kunden- und Versenderinformationen aus:

Hier ist die Versendertabelle:

VersenderIDShipperNameTelefon
1Speedy Express(503) 555-9831
2United Package(503) 555-3199
3Federal Shipping(503) 555-9931

Beispiel

SELECT Orders.OrderID, Customers.CustomerName, Shippers.ShipperName
FROM ((Orders
INNER JOIN Customers ON Orders.CustomerID = Customers.CustomerID)
INNER JOIN Shippers ON Orders.ShipperID = Shippers.ShipperID);
Nach oben scrollen