SQL FULL OUTER JOIN- Schlüsselwort
SQL FULL OUTER JOIN-Schlüsselwort
Das FULL OUTER JOIN
Schlüsselwort gibt alle Datensätze zurück, wenn es eine Übereinstimmung in linken (Tabelle1) oder rechten (Tabelle2) Tabellendatensätzen gibt.
Tipp: FULL OUTER JOIN
und
FULL JOIN
sind gleich.
FULL OUTER JOIN-Syntax
SELECT column_name(s)
FROM table1
FULL OUTER JOIN table2
ON table1.column_name = table2.column_name
WHERE condition;
Hinweis: FULL OUTER JOIN
Kann möglicherweise sehr große Ergebnismengen zurückgeben!
Demo-Datenbank
In diesem Tutorial verwenden wir die bekannte Northwind-Beispieldatenbank.
Nachfolgend eine Auswahl aus der Tabelle „Kunden“:
CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
---|---|---|---|---|---|---|
1 |
Alfreds Futterkiste | Maria Anders | Obere Str. 57 | Berlin | 12209 | Germany |
2 | Ana Trujillo Emparedados y helados | Ana Trujillo | Avda. de la Constitución 2222 | México D.F. | 05021 | Mexico |
3 | Antonio Moreno Taquería | Antonio Moreno | Mataderos 2312 | México D.F. | 05023 | Mexico |
Und eine Auswahl aus der Tabelle „Bestellungen“:
OrderID | CustomerID | EmployeeID | OrderDate | ShipperID |
---|---|---|---|---|
10308 | 2 | 7 | 1996-09-18 | 3 |
10309 | 37 | 3 | 1996-09-19 | 1 |
10310 | 77 | 8 | 1996-09-20 | 2 |
SQL FULL OUTER JOIN Beispiel
Die folgende SQL-Anweisung wählt alle Kunden und alle Bestellungen aus:
SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
FULL OUTER JOIN Orders
ON Customers.CustomerID=Orders.CustomerID
ORDER BY Customers.CustomerName;
Eine Auswahl aus der Ergebnismenge könnte wie folgt aussehen:
CustomerName | OrderID |
---|---|
Null | 10309 |
Null | 10310 |
Alfreds Futterkiste | Null |
Ana Trujillo Emparedados y helados | 10308 |
Antonio Moreno Taquería | Null |
Hinweis: Das FULL OUTER JOIN
Schlüsselwort gibt alle übereinstimmenden Datensätze aus beiden Tabellen zurück, unabhängig davon, ob die andere Tabelle übereinstimmt oder nicht. Wenn es also Zeilen in „Kunden“ gibt, die keine Übereinstimmungen in „Bestellungen“ haben, oder wenn es Zeilen in „Bestellungen“ gibt, die keine Übereinstimmungen in „Kunden“ haben, werden diese Zeilen ebenfalls aufgelistet.