Join sinistro vs destro: differenza e confronto

Il join genera una tabella che può essere utilizzata da sola o combinata tra loro. Si consiglia quindi di comprendere questi join e le loro distinzioni per determinare il join specifico e se in casi unici è necessario scegliere destra o sinistra.

Punti chiave

  1. Un join sinistro include tutti i record della tabella di sinistra e i record corrispondenti della tabella di destra, compilando i valori NULL per le righe senza corrispondenza.
  2. Un right join include tutti i record della tabella di destra e i record corrispondenti della tabella di sinistra, compilando i valori NULL per le righe senza corrispondenza.
  3. I join sinistro e destro sono immagini speculari l'uno dell'altro e possono essere intercambiabili a seconda dell'ordine della tabella nella query.

Join sinistro vs Join destro

Un join sinistro restituisce tutte le righe della tabella di sinistra e le righe corrispondenti della tabella di destra e, se non ci sono corrispondenze nella tabella di destra, il risultato conterrà valori nulli. Un join destro, come il join sinistro, ma restituisce tutte le righe della tabella di destra e le righe corrispondenti della tabella di sinistra.

Join sinistro vs Join destro

Anche se non c'è corrispondenza sul lato destro del tavolo, il SQL LEFT processa in entrata tutte le voci dalla tabella di sinistra. Ciò implica che quando la clausola ON contiene 0 (zero) voci sul lato destro della tabella, il join restituirà comunque un record con NULL all'interno di ogni campo della tabella principale.

Il join destro, d'altra parte, rileva che anche nella tabella di sinistra, SQL RIGHT riceve e invia tutte le voci dalla tabella di destra.

Ciò implica che un right join fornisce tutti i dati dalla tabella corretta, nonché tutti i valori accettati dalle tabelle o NULL se non esiste un predicato di join appropriato per questa operazione.

Leggi anche:  Dichiarazione vs dichiarazione preparata: differenza e confronto

Tavola di comparazione

Parametri di confrontoUnisciti a sinistraIscriviti a destra
ImpiegoCollega più tabelle e fornisce tutti i record dalla tabella di sinistra e le righe corrispondenti da destra.Unisce più tabelle e fornisce tutti i dati dalla tabella di destra, nonché le righe corrispondenti prima dalla tabella di sinistra.
Esecuzione della queryDurante l'implementazione della query che include il join sinistro, tutte le voci delle tabelle vengono ricevute per prime, quindi i dati corrispondenti dei valori della colonna di destra della tabella vengono ottenuti utilizzando loop in pila e il valore NULL viene sostituito per altri dati senza corrispondenza.Durante l'implementazione della query che include il right join, vengono prima ottenuti tutti i dati della tabella di destra, quindi vengono raccolti i record corrispondenti dei valori della colonna della tabella di sinistra utilizzando i cicli in pila.
Set di risultatiIl valore del set di risultati sarà NULL o zero se non vengono trovati dati corrispondenti nella tabella corretta.Il valore del set di risultati sarà NULL o zero se non vengono trovati dati corrispondenti nella tabella di sinistra.
Termine sinonimoUNIONE ESTERNO SINISTROGIUNZIONE ESTERNA DESTRA
SintassiSELEZIONA nome/i colonna/i
DA table1
SINISTRA UNISCI tabella2
ON tabella1.nome_colonna = tabella2.nome_colonna;
SELEZIONA nome_colonna/i
DA table1
GIUSTO UNISCITI table2
ON tabella1.nome_colonna = tabella2.nome_colonna;

Cos'è Left Join?

Per unire i dati da due database a seconda di una colonna contenente valori corrispondenti, utilizziamo JOIN in SQL. Ad esempio, se hai una tabella contenente i dati del cliente (ID cliente, prima cognome, identificatore, ecc.) e quindi un'altra tabella contenente i dati dell'ordine per un determinato momento (ID transazione, ora, ID cliente, ID prodotto, ecc.)

Diamo un'occhiata alla sintassi del Left Join per comprenderne correttamente l'utilità:

Leggi anche:  Cos'è Amazon Kindle Unlimited e come funziona? Una rapida panoramica

SELEZIONA nome/i colonna/i

DA table1

SINISTRA UNISCI tabella2

ON tabella1.nome_colonna = tabella2.nome_colonna

  1. 'SELEZIONA' – Inizia selezionando le categorie che desideriamo visualizzare nel set di dati.
  2. 'FROM' – Inserire i dati delle tabelle, in cui si desidera mantenere tutte le informazioni.
  3. 'LEFT JOIN' – Inserisci i dati della seconda tabella citata.
  4. 'ON' – Utilizzare questa frase per specificare quali campi verranno utilizzati per collegare le tabelle.

Se sono presenti più risultati corrispondenti, la colonna nella tabella di sinistra viene duplicata per includere tutti i dati direttamente dalla tabella di destra. Se non viene trovata alcuna corrispondenza, conserva la riga della tabella di sinistra e quindi inserisce NULL nelle colonne pertinenti della tabella di destra.

Cos'è Right Join?

Per dirla senza mezzi termini, l'operazione di join destro è molto simile al join sinistro, esattamente l'opposto.

I right join sono essenzialmente molto simili ai left join in quanto recuperano tutte le righe dalla tabella specificata nella frase RIGHT JOIN ma solo le righe corrispondenti dalla tabella specificata nella clausola FROM.

Il RIGHT JOIN è usato raramente poiché il contenuto di un RIGHT JOIN può essere ottenuto semplicemente scambiando le etichette delle due tabelle collegate in un LEFT JOIN.

Vale la pena ricordare che LEFT JOIN e RIGHT JOIN possono anche essere espressi come LEFT ESTERNO ORA così come RIGHT OUTER JOIN.

La sintassi per Right Join è descritta più avanti. Le operazioni dei join destro e sinistro sono identiche, ma in ordine inverso:

SELEZIONA nome/i colonna/i
DA table1
DESTRA JOIN table2
ON tabella1.nome_colonna = tabella2.nome_colonna

Principali differenze tra join sinistro e join destro

  1. La frase di join sinistra è più comunemente usata rispetto alla frase di join destra.
  2. La formula per il join sinistro è tutti i record corrispondenti + i record senza corrispondenza della tabella di sinistra, mentre la formula per il join destro è tutti i record corrispondenti + i record senza corrispondenza della tabella di destra.
Riferimenti
  1. https://www.tutorialspoint.com/sql/sql-left-joins.htm#:~:text=The%20SQL%20LEFT%20JOIN%20returns,matches%20in%20the%20right%20table.&text=This%20means%20that%20a%20left,of%20no%20matching%20join%20predicate.
  2. https://mode.com/sql-tutorial/sql-right-join/#:~:text=Right%20joins%20are%20similar%20to,names%20in%20a%20LEFT%20JOIN%20.

Ultimo aggiornamento: 11 giugno 2023

punto 1
Una richiesta?

Ho messo così tanto impegno scrivendo questo post sul blog per fornirti valore. Sarà molto utile per me, se pensi di condividerlo sui social media o con i tuoi amici/familiari. LA CONDIVISIONE È ♥️

13 pensieri su "Unione sinistra vs destra: differenza e confronto"

  1. Le differenze intrinseche tra i join destro e sinistro sono spiegate in modo così completo da ampliare significativamente la comprensione dei join SQL.

    Rispondi
  2. Penso che il contenuto qui sia troppo specifico e non particolarmente utile per coloro che non hanno una vasta esperienza con SQL.

    Rispondi
  3. La tabella comparativa approfondita aiuta davvero a differenziare i due tipi di join. Questo articolo è davvero illuminante.

    Rispondi
  4. È assolutamente fondamentale comprendere le distinzioni tra join sinistro e destro e in quali situazioni dovrebbero essere utilizzati. Questo articolo realizza abilmente proprio questo.

    Rispondi

Lascia un tuo commento

Vuoi salvare questo articolo per dopo? Fai clic sul cuore nell'angolo in basso a destra per salvare nella casella dei tuoi articoli!