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.

How useful was this post?

Click on a star to rate it!

Average rating / 5. Vote count:

No votes so far! Be the first to rate this post.

As you found this post useful...

Follow us on social media!

We are sorry that this post was not useful for you!

Let us improve this post!

Tell us how we can improve this post?