MySQL -Joins
MySQL Joining-Tabellen
Eine JOIN
Klausel wird verwendet, um Zeilen aus zwei oder mehr Tabellen zu kombinieren, basierend auf einer verwandten Spalte zwischen ihnen.
Sehen wir uns eine Auswahl aus der Tabelle „Bestellungen“ an:
OrderID | CustomerID | OrderDate |
---|---|---|
10308 | 2 | 1996-09-18 |
10309 | 37 | 1996-09-19 |
10310 | 77 | 1996-09-20 |
Sehen Sie sich dann eine Auswahl aus der Tabelle "Kunden" an:
CustomerID | CustomerName | ContactName | Country |
---|---|---|---|
1 | Alfreds Futterkiste | Maria Anders | Germany |
2 | Ana Trujillo Emparedados y helados | Ana Trujillo | Mexico |
3 | Antonio Moreno Taquería | Antonio Moreno | Mexico |
Beachten Sie, dass die Spalte „CustomerID“ in der Tabelle „Orders“ auf die „CustomerID“ in der Tabelle „Customers“ verweist. Die Beziehung zwischen den beiden obigen Tabellen ist die Spalte „CustomerID“.
Dann können wir die folgende SQL-Anweisung erstellen (die ein enthält
INNER JOIN
), die Datensätze auswählt, die übereinstimmende Werte in beiden Tabellen haben:
Beispiel
SELECT Orders.OrderID, Customers.CustomerName, Orders.OrderDate
FROM Orders
INNER JOIN Customers ON Orders.CustomerID=Customers.CustomerID;
und es wird so etwas produzieren:
OrderID | CustomerName | OrderDate |
---|---|---|
10308 | Ana Trujillo Emparedados y helados | 9/18/1996 |
10365 | Antonio Moreno Taquería | 11/27/1996 |
10383 | Around the Horn | 12/16/1996 |
10355 | Around the Horn | 11/15/1996 |
10278 | Berglunds snabbköp | 8/12/1996 |
Unterstützte Arten von Joins in MySQL
INNER JOIN
: Gibt Datensätze zurück, die übereinstimmende Werte in beiden Tabellen habenLEFT JOIN
: Gibt alle Datensätze aus der linken Tabelle und die übereinstimmenden Datensätze aus der rechten Tabelle zurückRIGHT JOIN
: Gibt alle Datensätze aus der rechten Tabelle und die übereinstimmenden Datensätze aus der linken Tabelle zurückCROSS JOIN
: Gibt alle Datensätze aus beiden Tabellen zurück