Qual è la differenza tra INNER JOIN, LEFT JOIN, RIGHT JOIN e FULL JOIN?
Qual è la differenza tra INNER JOIN
, LEFT JOIN
, RIGHT JOIN
e FULL JOIN
?
in MySQL?
1586
3
Qual è la differenza tra INNER JOIN
, LEFT JOIN
, RIGHT JOIN
e FULL JOIN
?
in MySQL?
Leggere questo articolo originale su The Code Project vi aiuterà molto: Rappresentazione visiva delle giunzioni SQL.
Controlla anche questo post: SQL SERVER - Migliori prestazioni - LEFT JOIN o NOT IN?.
Trova quello originale a: Differenza tra JOIN e OUTER JOIN in MySQL.
INNER JOIN ottiene tutti i record che sono comuni tra le due tabelle in base alla clausola ON fornita.
LEFT JOIN ottiene tutti i record dalla tabella LEFT collegata, ma se avete selezionato alcune colonne dalla tabella RIGHT, se non ci sono record correlati, queste colonne conterranno NULL.
RIGHT JOIN è come la precedente ma ottiene tutti i record della tabella RIGHT.
FULL JOIN prende tutti i record da entrambe le tabelle e mette NULL nelle colonne dove non esistono record correlati nella tabella opposta.
Ci sono diversi tipi di join disponibili in SQL:
INNER JOIN: restituisce le righe quando c'è una corrispondenza in entrambe le tabelle.
LEFT JOIN: restituisce tutte le righe della tabella di sinistra, anche se non ci sono corrispondenze nella tabella di destra.
RIGHT JOIN: restituisce tutte le righe della tabella di destra, anche se non ci sono corrispondenze nella tabella di sinistra.
FULL JOIN: Combina i risultati di entrambe le outer join di sinistra e di destra.
La tabella unita conterrà tutti i record di entrambe le tabelle e riempirà i NULL per le corrispondenze mancanti su entrambi i lati.
SELF JOIN: si usa per unire una tabella a se stessa come se la tabella fosse due tabelle, rinominando temporaneamente almeno una tabella nell'istruzione SQL.
CARTESIAN JOIN: restituisce il prodotto cartesiano degli insiemi di record delle due o più tabelle unite.
Possiamo prendere ogni prima quattro join in Dettagli :
Abbiamo due tabelle con i seguenti valori.
TabellaA
TabellaB
....................................................................
RIUNIONE DI UN PARTECIPANTE
Nota :dà l'intersezione delle due tabelle, cioè le righe che hanno in comune nella tabella A e nella tabella B
Sintassi
Applicala nella nostra tabella di esempio:
Il risultato sarà
LEFT JOIN
Nota : darà tutte le righe selezionate nella tabella A, più tutte le righe comuni selezionate nella tabella B.
Sintassi
Applicala nella nostra tabella di esempio:
Risultato
GIUNZIONE A DESTRA
Nota : darà tutte le righe selezionate in TableB, più tutte le righe comuni selezionate in TableA.
Sintassi
Applicala nella nostra tabella di esempio:
Risultato
FULL JOIN
Nota :Restituirà tutti i valori selezionati da entrambe le tabelle.
Sintassi
Applicala nella nostra tabella di esempio:
Risultato
Fatto interessante
Per gli INNER join l'ordine non ha importanza
Per le giunzioni OUTER (SINISTRA, DESTRA o COMPLETA), l'ordine è importante
Meglio andare a controllare questo Link che vi darà dettagli interessanti sull'ordine di unione