15.5 C
Roma
mercoledì, Maggio 12, 2021
Home Corsi Acquisire dati da più tabelle - Le join

Acquisire dati da più tabelle – Le join

Avendo a disposizione un database e non una singola tabella, dobbiamo tenere a mente la possibilità di selezionare i dati da più tabelle e questa funzionalità è una della principali di SQL, e prende il nome di join.

Le unioni fra tabella si dividono in quattro categorie:

  • Inner Join;
  • Left Join;
  • Righe Join;
  • Cross Join.

L’unione tra tabelle solitamente avviene tramite la chiave univoca che identifica una tabella, ad esempio possiamo unire l’anagrafica delle vendite con quella dei clienti tramite il codice cliente che inseriamo appositamente ogni volta che egli effettua un acquisto.

Proprio su questo esempio ci baseremo per la comprensione dei quattro differenti modalità di utilizzo di una join.

TABELLE ESEMPIO

IDCODICEARTCODICECLIPREZZOTOT
1400004425C000125
2400002511C000230
3400221021C000115,5
4400000010C0124340
ANAGRAFICA VENDITE
CODICECLIRAGIONESOCCITTA’
C0001ITAROSAROMA
C0008GIALLOVERNAMILANO
C0124DEVMANIAFIRENZE
ANAGRAFICA CLIENTI

INNER JOIN

Se volessimo utilizzare una Inner, il risultato della query ci farà visualizzare tutti gli elementi della tabella delle vendite che hanno una relativa corrispondenza nella tabella dei clienti. Ed il risultato sarebbe il seguente:

IDCODICEARTCODICECLIPREZZOTOTCODICECLIRAGIONESOCCITTA’
1400004425C000125C0001ITAROSAROMA
3400221021C000115,5C0001ITAROSAROMA
4400000010C0124340C0124DEVMANIAFIRENZE

La query generante sarebbe:

SELECT * FROM ANAGRAFICAVENDITE
INNER JOIN ANAGRAFICACLIENTI 
ON ANAGRAFICAVENDITE.CODICECLI = ANAGRAFICACLIENTI.CODICECLI

LEFT JOIN

Nel caso della Left, non ha importanza la corrispondenza con i clienti. Di conseguenza verrà visualizzato l’intero contenuto della tabella delle vendite ed eventualmente la corrispondenza nella tabella dei clienti. Avendo una tabella risultante simile alla seguente:

IDCODICEARTCODICECLIPREZZOTOTCODICECLIRAGIONESOCCITTA’
1400004425C000125C0001ITAROSAROMA
2400002511C00230NULLNULLNULL
3400221021C000115,5C0001ITAROSAROMA
4400000010C0124340C0124DEVMANIAFIRENZE

Tale tabella è generata dalla query:

SELECT * FROM ANAGRAFICAVENDITE
LEFT JOIN ANAGRAFICACLIENTI 
ON ANAGRAFICAVENDITE.CODICECLI = ANAGRAFICACLIENTI.CODICECLI

RIGHT JOIN

La Right Join, funziona in modo opposto alla left, in questo caso verranno presi tutti i dati presenti nella seconda tabella (ANAGRAFICACLIENTI) ed eventualmente trovati tutti suoi collegamenti nella prima (ANGRAFICAVENDITE) escludendo di conseguenza tutte le vendite che hanno un cliente di cui non abbiamo nella relativa anagrafica. La tabella risultante è la seguente:

IDCODICEARTCODICECLIPREZZOTOTCODICECLIRAGIONESOCCITTA’
1400004425C000125C001ITAROSAROMA
2400221021C000115.5C001ITAROSAROMA
3400000010C0124340C0124DEVMANIAFIRENZE
NULLNULLNULLNULLC0008GIALLOVERNAMILANO

Generata dalla query

SELECT * FROM ANAGRAFICAVENDITE
RIGHT JOIN ANAGRAFICACLIENTI 
ON ANAGRAFICAVENDITE.CODICECLI = ANAGRAFICACLIENTI.CODICECLI

CROSS JOIN

L’unione di tipo Cross è quella che meno utilizzerete nella vostra esperienza in SQL in quanto creerà il prodotto cartesiano degli elementi dei campi che specificherete nella Join, ciò renderebbe il vostro lavoro tremendamente difficile da comprendere. Personalmente non l’ho mai usata in ambito professionale, anche se in ambito scolastico/accademico non è escluso che vi chiedano di cosa si tratti.

LINK UTILI

Pagina Instagram: https://www.instagram.com/developer_sumo/
I nostri corsi: https://www.developersumo.com/corsi/
Corso SQL: https://www.developersumo.com/sql/
Scopri le nostre App su Google Play: https://play.google.com/store/apps/details?id=com.developersumo.app

LEAVE A REPLY

Please enter your comment!
Please enter your name here

- Advertisment -

Most Popular

Cos’è e come fare un Vlog

Se siete abituati ad usare la tecnologia è abbastanza probabile che siate giovani e che passiate molto tempo sui social e se...

Come usare e creare le classi in HTML

L'attributo class è utilizzato per assegnare ad un oggetto HTML una classe. Una delle caratteristiche principali delle classi HTML è che possono...

Lista compleanni personaggi Death Note

Death Note scritto da Tsugumi Ōba e illustrato da Takeshi Obata. È stato serializzato in Giappone dal 1º dicembre 2003 al 15...

Linguaggio di Programmazione di League of Legends

Se sei un appassionato di sviluppo informatico sicuramente ti sarai chiesto quale sia il linguaggi di programmazione di League of Legends. League...

Recent Comments