Corsi on-line
Chiudi
Newsletter:
  • Seguici su Facebook
  • Seguici su Twitter
  • Seguici su Google+
  • Seguici via RSS
  • Seguici col tuo Smartphone

Gestire JOIN a tre tabelle

Articolo scritto da Max Bossi

Nella guida a SQL abbiamo visto come creare unioni tra due tabelle utilizzando INNER JOIN. In questo articolo vedremo come fare la stessa cosa gestendo non più due, ma tre tabelle.

In realtà si tratta di un operazione molto semplice che non differisce da una comune JOIN su 2 tabelle.
Facciamo subito un esempio pratico: pensiamo ad un ipotetico database acquisti di una semplice applicazione di e-commerce composto da tre tabelle così strutturate:

utenti (utilizzata per la gestione degli utenti registrati)

prodotti (utilizzata per il catalogo dei prodotti in vendita) acquisti (utilizzata per registrare degli acquisti) Ora poniamo di voler recuperare, utilizzando una sola query, le seguenti informazioni relativi agli acquisti effettuati da un dato userID (ad es. 1), informazioni contenute in tre tabelle diverse: nome e cognome dell utente (tabella utenti), nome, descrizione e prezzo del prodotto acquistato (tabella prodotti) e la data dell'acquisto (tabella acquisti). Come fare? Semplice... basta utilizzare una query del genere:
SELECT
  utenti.ute_nome, utenti.ute_cognome,
  prodotti.prod_nome, prodotti.prod_descrizione, prodotti.prod_prezzo,
  acquisti.acq_data
FROM utenti
INNER JOIN acquisti
ON utenti.ute_id = acquisti.acq_ute_id
INNER JOIN prodotti
ON prodotti.prod_id = acquisti.acq_prod_id
WHERE utenti.ute_id = 1; 
Come avrete notato la comune clausula FROM (che individua la prima tabella) è seguita da due INNER JOIN (che individuano rispettivamente la seconda e la terza tabella) accompagnate dall'istruzione di collegamento ON che serve "da ponte" al fine di creare un collegamento razionale tra le diverse tabelle.

Per concludere non mi resta che ricordarvi che, ovviamente, è possibile utilizzare la tecnica vista sopra anche per query più complesse che coinvolgano 4, 5 o più tabelle... in realtà vi consiglio di non esagerare nella costruzioni di simili query che, seppur teoricamente fattibili, risultano spesso difficimente gestibili nella pratica applicativa.

Corsi
Corso MS AccessCorso MS Access
Impara a creare e gestire database in maniera semplice e veloce. A partire da 39 €.
Corso MySQLCorso MySQL
Gestione del database open-source. A partire da 49 €.
Corso SQL e DatabaseCorso SQL e Database
Creazione e gestione di database relazionali. A partire da 39 €.
Vedi anche...
Annunci

Mr.Webmaster

Pubblicità
Chi Siamo
Contattaci
Collabora
Note Legali
© 2003 - 2012 Mr.Webmaster - Il portale dei Webmaster Italiani - Tutti i diritti riservati | Powered by IKIweb Internet Media S.r.l. - PIVA 02848390122