SQL Join





SQL > Comandi SQL > Join

Verranno adesso analizzate le unioni. Per realizzare correttamente le unioni in SQL, sono necessari molti degli elementi introdotti finora. 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 le vendite in base alla regione. Come si può notare, nella tabella Geography sono contenute le informazioni relative alle regioni e ai negozi, mentre in quella Store_Information sono contenute le informazioni relative alle vendite per ciascun negozio. Per ottenere le informazioni relative alle vendite in base alla regione, è necessario combinare le informazioni contenute nelle due tabelle. Esaminando le due tabelle, si noterà che sono collegate mediante il campo comune “store_name”. Verrà prima presentata l’istruzione SQL mentre, successivamente, verrà spiegato l’utilizzo di ciascun segmento:

SELECT A1.Region_Name REGION, SUM(A2.Sales) SALES
FROM Geography A1, Store_Information A2
WHERE A1.Store_Name = A2.Store_Name
GROUP BY A1.Region_Name;

Risultato:

REGION SALES
East 700
West 2050

Le prime due righe dicono a SQL di selezionare due campi: il primo è il campo "region_name" dalla tabella Geography (il cui alias è REGION), il secondo rappresenta la somma del campo "Sales" dalla tabella Store_Information (il cui alias è SALES). Si noti come vengono utilizzati qui gli alias di tabella: Geography dispone dell’alias A1 e Store_Information dispone dell’alias A2. Senza gli alias, la prima riga diventerebbe:

SELECT Geography.Region_Name REGION, SUM(Store_Information.Sales) SALES

risultando molto più scomoda. Fondamentalmente, gli alias di tabella rendono l’intera istruzione SQL molto più semplice da comprendere, specialmente quando sono incluse diverse tabelle.

Successivamente, si presti attenzione alla riga 3, l’istruzione WHERE. Questa rappresenta la condizione in cui viene specificata l’unione. In questo caso, si desidera assicurarsi che il contenuto di "store_name" presente nella tabella Geography corrisponde a quello presente nella tabella Store_Information. . A questo scopo, è sufficiente impostarli in modo uguale. Questa istruzione WHERE risulta essenziale per assicurarsi che l’output recuperato è quello corretto. Senza l’istruzione WHERE corretta, verrà restituita un’unione cartesiana. Le unioni cartesiane risultano dalle interrogazioni che restituiscono ogni combinazione possibile delle due tabelle (o qualsiasi numero di tabelle presenti nell’istruzione FROM). In questo caso, un’unione cartesiana risulterebbe in un totale di 4 x 4 = 16 righe restituite.

SQL Outer Join >>

Questa pagina è stata aggiornata l'ultima volta il 27/06/2022



Copyright © 2024   1keydata.com   Tutti i diritti riservati