Home Chi sono Mappa del sito Contatti  
 
Java
Apache Wicket
Sistemistica Totocalcio
 
 
Programmare Applicativi...
Presentazione del libro
Panoramica dei contenuti
 
 
Giochi in PHP
Introduzione
Filetto (Tris)
Forza 4
Sudoku
 
 
Tutorial Linux/Unix
Archivio
 
 
Sql
Tutorial su Mysql
 
 
C++
Framework a oggetti
 
Tutorial su Mysql->Operatore JOIN

Operatore JOIN

L'operatore JOIN viene utilizzato per evitare loop annidati per recuperare i dati.
Vediamo un esempio di codice PHP
Nel precedente esempio sono stati utilizzati degli alias: il loro uso è importante, in quanto permettono di distinguere i campi in caso di ambiguità (nomi di campi uguali su tabelle diverse), e migliorano la leggibilità del codice. Se potete, evitate di scrivere la query in questo modo
Si noti che i nomi dei campi cognome e id_provincia poiché appartengono solo alla tabella rubrica, sono distinguibili dal gestore di database, ma sono meno leggibili dall'utente.

Tipi diversi di JOIN

In SQL esistono tre principali tipi di operatore JOIN: INNER JOIN, LEFT JOIN, RIGHT JOIN
Vediamo alcuni esempi per capire le differenze. Prendiamo in esame le seguenti tabelle

Tabella impiegati
idnomeid_reparto
1Andrea3
2Filippo2
3MauroNULL
4Piero2
5Paolo1
6Roberto2
Tabella reparti
idnome
1Amministrazione
2Magazzino
3Ufficio Acquisti
4Produzione


INNER JOIN

La query restituisce le righe delle tabelle solo dove c'è un legame tra r.id e i.id_reparto
ImpiegatoReparto
PaoloAmministrazione
FilippoMagazzino
PieroMagazzino
RobertoMagazzino
AndreaUfficio Acquisti


LEFT JOIN

La query restituisce tutte le righe della tabella impiegato, il campo Reparto assume il valore r.nome solo dove c'è un legame tra r.id e i.id_reparto, altrimenti assume NULL.
ImpiegatoReparto
AndreaUfficio Acquisti
FilippoMagazzino
MauroNULL
PieroMagazzino
PaoloAmministrazione
RobertoMagazzino


RIGHT JOIN

La query restituisce tutte le righe della tabella reparto, il campo Impiegato assume il valore i.nome solo dove c'è un legame tra r.id e i.id_reparto, altrimenti assume NULL.
ImpiegatoReparto
PaoloAmministrazione
FilippoMagazzino
PieroMagazzino
RobertoMagazzino
AndreaUfficio Acquisti
NULLProduzione




Riepilogo