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
Store_NameSalesTxn_Date
Los Angeles150005-Jan-1999
San Diego25007-Jan-1999
Los Angeles30008-Jan-1999
Boston70008-Jan-1999

Tabella Geography
Region_NameStore_Name
EastBoston
EastNew York
WestLos Angeles
WestSan Diego

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:

Store_Name SALES
Boston 700
New York
Los Angeles 1800
San Diego 250

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.

SQL Concatenate >>



Copyright © 2014   1keydata.com   Tutti i diritti riservati.



SQL SELECT
SQL DISTINCT
SQL WHERE
SQL AND OR
SQL IN
SQL BETWEEN
SQL LIKE
SQL ORDER BY
SQL Funzioni
SQL COUNT
SQL GROUP BY
SQL HAVING
SQL ALIAS
SQL Join
SQL Outer Join
SQL CONCATENATE
SQL SUBSTRING
SQL TRIM
SQL LENGTH
SQL REPLACE
SQL DATEADD
SQL DATEDIFF
SQL DATEPART
SQL GETDATE
SQL SYSDATE




Indice del sito