Logo it.removalsclassifieds.com

Differenza tra join sinistro e destro (con tabella)

Sommario:

Anonim

Join è un tipico moniker ed elemento di comando che apparirà di volta in volta mentre si ha a che fare con SQL. La clausola join facilita la combinazione di record di varie tabelle nella raccolta dati. Il join genera una tabella che può essere utilizzata da sola o combinata tra loro. Si consiglia quindi di comprendere queste unioni e le distinzioni tra di esse per determinare l'unione specifica e se si deve scegliere destra o sinistra in casi unici.

Join sinistro vs Join destro

La differenza tra join sinistro e join destro è che l'incorporazione di voci non corrispondenti è la distinzione principale tra entrambi questi tipi di join. LEFT JOIN elabora tutte le voci dal lato sinistro e le righe accoppiate dalla tabella di destra, mentre RIGHT JOIN fornisce tutte le righe dal lato destro e le righe non corrispondenti dal pannello di sinistra.

Anche se non c'è corrispondenza sul lato destro della tabella, il processo SQL LEFT in entrata tutte le voci dalla tabella sinistra. Ciò implica che quando la clausola ON contiene 0 (zero) voci sul lato destro della tabella, il join restituirebbe comunque un record con NULL all'interno di ogni campo della tabella principale. Ciò implica che un join sinistro fornisce prima tutti i dati dalla tabella di sinistra, nonché tutti i valori corrispondenti dalla tabella di destra, o NULL se non esiste un predicato di join adatto.

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 anche se la clausola ON contiene 0 (zero) voci nel database di sinistra, il join produrrebbe comunque una riga con un valore NULL in ogni campo della tabella di sinistra proprio come il join di sinistra ma viceversa.

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

Tabella di confronto tra join sinistro e destro

Parametri di confronto

Unisciti a sinistra

Unisciti a destra

utilizzo

Collega più tabelle e fornisce tutti i record della tabella di sinistra e le righe corrispondenti come 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 query

Durante l'implementazione della query, incluso il join sinistro, vengono prima ricevute tutte le voci delle tabelle, quindi vengono ottenuti i dati corrispondenti dei valori della colonna della tabella destra utilizzando loop in pila e il valore NULL viene sostituito per altri dati non corrispondenti. Durante l'implementazione della query, incluso il join destro, vengono prima ottenuti tutti i dati della tabella destra e successivamente vengono raccolti i record corrispondenti dei valori della colonna della tabella sinistra utilizzando cicli impilati.
Set di risultati

Il 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 a sinistra.
Termine sinonimo

UNIONE ESTERNO SINISTRO GIUNZIONE ESTERNA DESTRA
Sintassi

SELECT nome_colonna(s)FROM table1LEFT JOIN table2ON table1.column_name = table2.column_name; SELECT nome_colonna/e FROM table1 RIGHT JOIN table2 ON table1.column_name = table2.column_name;

Cos'è Left Join?

Per unire i dati da due database in base a una colonna contenente valori corrispondenti, utilizziamo JOIN in SQL. Ad esempio, se hai una tabella contenente i dati del cliente (ID cliente, nome, identificatore, ecc.) e poi un'altra tabella contenente i dati dell'ordine per un determinato periodo (ID transazione, ora, ID cliente, ID prodotto, ecc.), puoi collegare i due set di dati utilizzando le colonne che includono i numeri ID cliente. Questo ti fornirà le informazioni sull'ordine e sul cliente per ciascun cliente e la clausola Left join svolge un ruolo essenziale in questa operazione.

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

SELECT nome_colonna(i)

DA tabella1

JOIN A SINISTRA tabella2

ON table1.column_name = table2.column_name

Per iniziare, i database esaminano ogni voce nella tabella di sinistra, quindi cercano una corrispondenza nella tabella di destra in base alle colonne collegate. Se viene trovata una corrispondenza, i dati della tabella di destra vengono aggiunti alla riga corrispondente della tabella di sinistra. Se sono presenti più risultati che corrispondono, 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 come dalla 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. Per una migliore comprensione, esamineremo l'analisi della sintassi e in questo caso è importante l'uso generale del join destro e il collegamento alla tabella sinistra.

Il join destro SQL fornisce tutte le informazioni dalle righe della tabella corretta. Contiene anche i valori confermati come da tabella di sinistra; tuttavia, se non vengono trovate corrispondenze in entrambi i database, fornisce un valore NULL. I join di destra sono essenzialmente molto simili ai join di sinistra 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.

La tradizione di usare sempre LEFT JOIN è molto probabile che renda le query più facili da capire e verificare, sebbene non ci sia un motivo convincente per evitare di usare RIGHT JOIN. Vale la pena ricordare che LEFT JOIN e RIGHT JOIN possono anche essere espressi come LEFT OUTER JOIN e RIGHT OUTER JOIN.

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

SELECT nome_colonna(e)FROM table1RIGHT JOIN table2ON table1.column_name = table2.column_name

Principali differenze tra join sinistro e join destro

Conclusione

Quando si interagisce con questi diversi join, è fondamentale sapere che in un join esterno sinistro, tutte le colonne a sinistra della tabella sono visibili nel database. I risultati vengono visualizzati indipendentemente dal fatto che le colonne corrispondenti siano disponibili nella tabella corretta. Non fa differenza se usi il join esterno sinistro o destro perché le conseguenze sono le stesse. Le informazioni sul processo di un join esterno destro sono le stesse fornite da un join esterno sinistro.

Riferimenti

Differenza tra join sinistro e destro (con tabella)