back to top

SQL: gestire JOIN a tre tabelle

Nella guida a SQL abbiamo visto come creare unioni tra due tabelle utilizzando INNER JOIN. In questo articolo, ci concentreremo su come gestire unire non solo due, ma tre tabelle in una query SQL. Questo approccio รจ fondamentale per approfondire la gestione dei dati in un database relazionale.

In realtร , si tratta di un’operazione molto semplice che non differisce significativamente dalla comune JOIN su due tabelle. Per chiarire il concetto, facciamo subito un esempio pratico: supponiamo di avere un ipotetico database acquisti di una semplice applicazione di e-commerce, costituito dalle seguenti tre tabelle:

Pubblicitร 

utenti (utilizzata per la gestione degli utenti registrati):

  • ute_id
  • ute_nome
  • ute_cognome

prodotti (utilizzata per il catalogo dei prodotti in vendita):

  • prod_id
  • prod_nome
  • prod_descrizione
  • prod_prezzo

acquisti (utilizzata per registrare gli acquisti):

  • acq_id
  • acq_ute_id
  • acq_prod_id
  • acq_data

Immaginiamo di voler recuperare, utilizzando una sola query, le seguenti informazioni relative agli acquisti effettuati da un dato userID (ad esempio, 1): 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! Ecco come si configura la query:

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 potete notare, la comune clausola FROM (che identifica la prima tabella) รจ seguita da due INNER JOIN, che collegano rispettivamente la seconda e la terza tabella. Questi join sono accompagnati dall’istruzione di collegamento ON, che funge da ponte per stabilire la relazione tra le diverse tabelle.

Le JOIN in SQL non solo semplificano il recupero di dati correlati da piรน tabelle ma permettono anche di ottimizzare le performance delle query. In un contesto di database ampio e complesso, รจ fondamentale utilizzare queste tecniche per estrarre informazioni utili senza appesantire il sistema.

Considerazioni finali

Infine, vorrei ricordarvi che รจ possibile applicare la tecnica vista sopra anche per query piรน complesse che coinvolgono quattro, cinque o piรน tabelle. Tuttavia, vi consiglio di non esagerare nella costruzione di simili query, poichรฉ, sebbene teoricamente fattibili, risultano spesso difficili da gestire nella pratica applicativa. L’importante รจ mantenere la chiarezza e la manutenibilitร  delle vostre query SQL.

Aggiungere commenti e documentazione al codice SQL utilizzato รจ sempre una buona prassi, specialmente quando si lavora con query complesse. Questo permetterร  a chiunque altro legga il codice (incluso il futuro “voi”) di comprendere facilmente la logica dietro alle unioni e alle condizioni utilizzate.

Altri contenuti interessanti

Pubblicitร 

Potrebbero interessarti queste guide

Massimiliano Bossi
Massimiliano Bossi
Stregato dalla rete sin dai tempi delle BBS e dei modem a 2.400 baud, ho avuto la fortuna di poter trasformare la mia passione in un lavoro (nonostante una Laurea in Giurisprudenza). Adoro scrivere codice e mi occupo quotidianamente di comunicazione, design e nuovi media digitali. Orgogliosamente "nerd" sono il fondatore di MRW.it (per il quale ho scritto centinaia di articoli) e di una nota Web-Agency (dove seguo in prima persona progetti digitali per numerosi clienti sia in Italia che all'estero).

Leggi anche...

Come ottenere l’ID dell’ultimo record inserito in MySQL, PostgreSQL, SQL Server e Oracle?

Ottenere l'ID dell'ultimo record inserito in una tabella, dopo...

Database completo regioni, province e comuni italiani (in formato SQL)

Quando si sviluppa un sito web o un'applicazione in...

File CSV: cosa sono, come si aprono e come crearli

In questo articolo cercheremo di capire cos'รจ il formato...

Confrontare due tabelle e trovare i record senza corrispondenza

all'interno di un database relazionale può essere utile poter...

Eseguire comandi SQL online con SQL Fiddle

Sì. E' possibile testare codice SQL senza aver installato...

SQL: Calcolare la media dei valori di più campi

Attraverso una semplice query SQL รจ possibile calcolare dinamicamente...
Pubblicitร