SQL Outer Join | |
|
SQL >
Comandi SQL >
Outer Join
Precedentemente, abbiamo visto l'unione sinistra, o interna, in cui vengono selezionate le righe comuni alle tabelle che partecipano a un'unione. Si vedranno adesso quei casi in cui vengono selezionati degli elementi esistenti in una tabella a prescindere dalla loro presenza o meno nella seconda tabella. A questo punto, è necessario utilizzare il comando SQL OUTER JOIN La sintassi per l’elaborazione di un’unione esterna nel linguaggio SQL dipende dal database. Ad esempio, in Oracle, è necessario posizionare un "(+)" nella clausola WHERE nell’altro lato della tabella della quale si desiderano includere tutte le righe. Si supponga di disporre delle seguenti due tabelle: Tabella Store_Information
Tabella Geography
e che si desideri trovare la quantità delle vendite relative a tutti i negozi. Se si elabora un’unione regolare, i dati desiderati non potranno essere recuperati in quanto il dato “New York” andrà perduto, motivo per cui non viene visualizzato nella tabella Store_Information. Per questo motivo, è necessario elaborare un’unione esterna sulle due tabelle precedenti: SELECT A1.Store_Name, SUM(A2.Sales) SALES
FROM Geography A1, Store_Information A2 WHERE A1.Store_Name = A2.Store_Name (+) GROUP BY A1.Store_Name; Si noti che in questo caso si sta utilizzando una sintassi di Oracle per unione esterna. Risultato:
Nota: quando nessuna corrispondenza è presente nella seconda tabella, viene restituito il valore NULL. In questo caso, "New York" non appare nella tabella Store_Information, perciò il suo valore corrispondente nella colonna "SALES" è NULL.
Copyright © 2024 1keydata.com Tutti i diritti riservati |