Inner join

9 / 100

Una inner join crea una nuova tabella combinando i valori delle due tabelle di partenza (A and B) basandosi su una certa regola di confronto.

La query compara ogni riga della tabella A con ciascuna riga della tabella B cercando di soddisfare la regola di confronto definita.

Quando la regola di join viene soddisfatta, i valori di tutte le colonne delle tabelle A e B vengono combinate in un’unica riga nella costruzione della tabella risultante. La inner join è la forma di join usata più di frequente nelle applicazioni e rappresenta la modalità predefinita.

Per esempio, la seguente query unirà le due tabelle Impiegati e Dipartimenti usando la chiave primaria ID_dipartimento che è la colonna presente in entrambe le tabelle. Quando ID_dipartimento corrisponde in entrambe le tabelle (ovvero la regola è soddisfatta), la query combinerà le colonne CognomeID_dipartimento e Nome_dipartimento in un’unica riga per la tabella risultante.

Esempio di inner join in forma esplicita:

SELECT *
FROM   Impiegati 
       INNER JOIN Dipartimenti 
          ON Impiegati.ID_dipartimento = Dipartimenti.ID_dipartimento

che equivale a:

SELECT *  
FROM   Impiegati, Dipartimenti 
WHERE  Impiegati.ID_dipartimento = Dipartimenti.ID_dipartimento

Risultato della query di Inner join:

Impiegati.CognomeImpiegati.ID_dipartimentoDipartimenti.Nome_dipartimentoDipartimenti.ID_dipartimento
Santoro34Risorse umane34
Bianchi33Tecnico33
Monti34Risorse umane34
Mancini33Tecnico33
Rossi31Vendite31

Nota l’impiegato “Grassi” e il dipartimento “Promozione” non sono presenti in quanto l’impiegato Grassi ha un Null mentre Promozione non compare in nessun impiegato. A volte come risultato finale si desidera avere anche i record che non hanno corrispondenza: in tal caso è possibile usare la query di tipo Outer join.

Translate »