Parte 3: Join in SQL

Ecco la terza lezione del corso di SQL su ZioMark's HUB, che approfondisce le tecniche di join per combinare dati da più tabelle, include un esercizio pratico per consolidare le nuove conoscenze.

Benvenuti alla terza lezione del nostro corso di SQL su ZioMark's HUB! Dopo aver esplorato le query di selezione e le funzioni aggregato, questa lezione si concentrerà sulle diverse tecniche di join in SQL, un aspetto fondamentale per lavorare con database relazionali e combinare dati da più tabelle.

Che Cos'è un Join?

Un join SQL è un'operazione che combina le righe da due o più tabelle, basandosi su una colonna relazionata tra di loro. Ci sono diversi tipi di join che possono essere utilizzati a seconda delle esigenze specifiche della query.

Tipi di Join

  1. INNER JOIN: Restituisce le righe quando c'è almeno una corrispondenza in entrambe le tabelle.

  2. LEFT JOIN (o LEFT OUTER JOIN): Restituisce tutte le righe dalla tabella a sinistra, e le righe corrispondenti dalla tabella a destra. Se non c'è corrispondenza, il risultato è NULL sul lato destro.

  3. RIGHT JOIN (o RIGHT OUTER JOIN): Restituisce tutte le righe dalla tabella a destra, e le righe corrispondenti dalla tabella a sinistra. Se non c'è corrispondenza, il risultato è NULL sul lato sinistro.

  4. FULL JOIN (o FULL OUTER JOIN): Restituisce le righe quando c'è una corrispondenza in una delle tabelle.

Sintassi di Base dei Join

SELECT column_name(s)
FROM table1
[TYPE OF JOIN] JOIN table2
ON table1.column_name = table2.column_name;

Esempio Pratico

Immaginiamo di avere due tabelle, Employees e Departments, dove gli impiegati sono associati ai loro rispettivi dipartimenti attraverso un ID di dipartimento.

Tabella Employees

EmployeeID
EmployeeName
DepartmentID

1

Alice

1

2

Bob

2

3

Charlie

1

Tabella Departments

DepartmentID
DepartmentName

1

HR

2

IT

Query con INNER JOIN

SELECT Employees.EmployeeName, Departments.DepartmentName
FROM Employees
INNER JOIN Departments
ON Employees.DepartmentID = Departments.DepartmentID;

Questo restituirà:

EmployeeName
DepartmentName

Alice

HR

Bob

IT

Charlie

HR

Esercizio Pratico

Con le tabelle Employees e Departments fornite, prova a:

  1. Eseguire un LEFT JOIN per visualizzare tutti i dipendenti insieme ai nomi dei loro dipartimenti.

  2. Eseguire un RIGHT JOIN per visualizzare tutti i dipartimenti, inclusi quelli senza dipendenti.

Soluzioni

  1. LEFT JOIN:

SELECT Employees.EmployeeName, Departments.DepartmentName
FROM Employees
LEFT JOIN Departments
ON Employees.DepartmentID = Departments.DepartmentID;
  1. RIGHT JOIN:

SELECT Employees.EmployeeName, Departments.DepartmentName
FROM Departments
LEFT JOIN Employees
ON Departments.DepartmentID = Employees.DepartmentID;

Conclusione

Ora dovresti avere una solida comprensione di come i diversi tipi di join funzionino e come possono essere utilizzati per combinare dati in modi potenti e flessibili. Queste competenze ti saranno utili per analizzare e gestire efficacemente grandi quantità di dati relazionali.

Last updated