Differenze tra sinistra e destra Join Differenza tra

Anonim

Join sinistro e destro

Quando si ha a che fare con SQL, joins è un nome comune che verrà visualizzato di tanto in tanto. La clausola join aiuta nella combinazione di record di diverse tabelle in un set di dati. L'unione crea una tabella che può essere utilizzata così com'è o distribuita con altri. È quindi consigliabile comprendere questi join e le differenze tra loro in modo da conoscere il join specifico, e se la destra o la sinistra dovrebbero essere presi in casi speciali.

Per capire meglio i join e le loro differenze, è importante capire i tipi di join disponibili. Esistono generalmente tre tipi di join. Questi join includono l'inner join, il cross join e l'outer join. Il join interno generalmente confronta le tabelle e restituirà un risultato solo nel caso in cui venga trovata una corrispondenza. La funzione principale di un join interno è ridurre la dimensione dei set di risultati.

I cross join, invece, confrontano due tabelle e restituiscono ciascuna combinazione possibile proveniente dalle righe di entrambe le tabelle. Da questa unione si attendono numerosi risultati e la maggior parte di essi potrebbe anche non essere significativa. L'uso di questa unione dovrebbe quindi essere praticato con cautela.

Il join esterno prende un confronto di tabelle e restituisce i dati quando è disponibile una corrispondenza. Proprio come visto nel join interno, l'outer join duplica le righe in una data tabella nel caso in cui vengano visualizzati i record corrispondenti. I risultati dei join esterni sono normalmente più grandi e quindi i set di dati sono grandi perché l'insieme di per sé non viene rimosso dall'insieme.

Un join di sinistra si riferisce al mantenimento di tutti i record dalla prima tabella indipendentemente dal risultato e all'inserimento di valori NULL quando i valori della seconda tabella non corrispondono. Un join destro, d'altra parte, si riferisce a mantenere tutti i record provenienti dalla seconda tabella indipendentemente dal risultato, e l'uso dei valori NULL quando i risultati non corrispondono a quelli nella prima tabella.

Un join esterno sinistro mantiene quindi tutte le righe che si trovano nella tabella 'left' indipendentemente dal fatto che ci sia una riga che la abbina nella tabella 'right'. La tabella di sinistra si riferisce quindi alla tabella che viene prima nella dichiarazione congiunta. Dovrebbe apparire a sinistra della parola chiave 'join' presente sulla tabella. Quando viene eseguito un join esterno sinistro, tutte le righe da sinistra devono essere restituite. Le colonne non corrispondenti nella tabella saranno riempite con un valore NULL ogni volta che non vi è alcuna corrispondenza.

È importante notare che quando si ha a che fare con questi due join, tutte le righe dalla sinistra della tabella sono mostrate nella tabella in un join esterno sinistro. I risultati vengono visualizzati indipendentemente dall'eventuale presenza di colonne corrispondenti nella tabella corretta.In un join esterno destro, vengono visualizzate tutte le righe da destra e questo indipendentemente dall'eventuale presenza di colonne corrispondenti nella parte sinistra della tabella.

La scelta se andare per il join esterno sinistro o per il join esterno destro non ha importanza in quanto vengono visualizzati gli stessi risultati. La funzionalità che presenta un join esterno destro è la stessa funzionalità presentata dal join esterno sinistro. Semplicemente cambiando l'ordine in cui le tabelle appaiono nell'istruzione SQL, è possibile aspettarsi risultati simili, indipendentemente dal join utilizzato.

Sommario

Le join sono disponibili in tre gruppi principali: join interno, cross join e outer join

Un join esterno sinistro visualizza tutte le righe dalla sinistra della tabella

Un join destro visualizza tutte le righe dal a destra della tabella

L'alternanza della sequenza SQL può eliminare l'uso di entrambi i join esterni destro e sinistro e invece ne usa solo uno.