TOP

Parola chiave SQL FULL OUTER JOIN

SQL FULL OUTER JOIN Descrizione

La parola chiave FULL OUTER JOIN restituisce tutti i record se esiste una corrispondenza nei record di sinistra (tabella1) o di destra (tabella2) della tabella.


Le istruzioni FULL OUTER JOIN e FULL JOIN sono le stesse.

FULL OUTER JOIN Sintassi

SELECT column_name(s)
FROM table1
FULL OUTER JOIN table2
ON table1.column_name = table2.column_name
WHERE condition

SQL FULL JOIN

Banca dati dimostrativa

In questo tutorial utilizzeremo il famoso database di esempio "Northwind".

Di seguito è riportato un esempio della tabella "Customers" ("Clienti"):

CustomerIDCustomerNameContactNameAddressCityPostalCodeCountry
1Alfreds FutterkisteMaria AndersObere Str. 57Berlin12209Germany
2Ana Trujillo Emparedados y heladosAna TrujilloAvda. de la Constitución 2222México D.F.5021Mexico
3Antonio Moreno TaqueríaAntonio MorenoMataderos 2312México D.F.5023Mexico
4Around the HornThomas Hardy120 Hanover Sq.LondonWA1 1DPUK
5Berglunds snabbköpChristina BerglundBerguvsvägen 8LuleåS-958 22Sweden

E l'esempio dalla tabella "Orders" ("Ordini"):

ProductIDOrderIDCustomerIDEmployeeIDOrderDateShipperID
1102489051996-07-043
2102498161996-07-051
3102503441996-07-082
4102518431996-07-081
5102527641996-07-092

SQL FULL OUTER JOIN Esempio

La seguente istruzione SQL seleziona tutti i clienti e tutti gli ordini:

Run SQLSELECT Customers.CustomerName, Orders.OrderID 
FROM Customers 
FULL OUTER JOIN Orders ON Customers.CustomerID = Orders.CustomerID 
ORDER BY Customers.CustomerName

Un esempio del set di risultati potrebbe assomigliare a questo:

CustomerName OrderID
Null 10309
Null 10310
Alfreds Futterkiste Null
Ana Trujillo Emparedados y helados 10308
Antonio Moreno Taquería Null
La parola chiave FULL OUTER JOIN restituisce tutti i record corrispondenti da entrambe le tabelle indipendentemente dal fatto che l'altra tabella corrisponda o meno. Pertanto, se sono presenti righe in "Customers" ("Clienti") che non hanno corrispondenze in "Orders" ("Ordini"), o se sono presenti righe in "Ordini" che non hanno corrispondenze in "Clienti", anche tali righe sono verranno elencati.