logo

Differenza tra unione sinistra e unione destra

MySQL ha principalmente due tipi di join denominati LEFT JOIN e RIGHT JOIN. La differenza principale tra questi join è il inclusione di righe non corrispondenti . LEFT JOIN include tutti i record del lato sinistro e le righe corrispondenti della tabella di destra, mentre RIGHT JOIN restituisce tutte le righe del lato destro e le righe non corrispondenti della tabella di sinistra. In questa sezione, conosceremo le differenze popolari tra l'unione SINISTRA e DESTRA. Prima di esplorare il confronto, comprendiamo innanzitutto le clausole JOIN, LEFT JOIN e RIGHT JOIN MySQL .

Cos'è la clausola JOIN?

UN giuntura viene utilizzato per interrogare i dati da più tabelle e restituisce il risultato combinato di due o più tabelle tramite una condizione. La condizione nella clausola di join indica la modalità di corrispondenza delle colonne tra le tabelle specificate.

Cos'è la clausola LEFT JOIN?

La clausola Left Join unisce due o più tabelle e restituisce tutte le righe della tabella di sinistra e i record corrispondenti della tabella di destra oppure restituisce null se non trova alcun record corrispondente. È anche noto come Unione esterna sinistra . Pertanto, Outer è la parola chiave facoltativa da utilizzare con Left Join.

Possiamo capirlo con la seguente rappresentazione visiva:

Join a sinistra vs Join a destra

Per leggere ulteriori informazioni sul join SINISTRO, clicca qui .

Qual è la clausola RIGHT JOIN?

La clausola Right Join unisce due o più tabelle e restituisce tutte le righe della tabella a destra e solo i risultati dell'altra tabella che soddisfano la condizione di join specificata. Se trova record senza corrispondenza dalla tabella di sinistra, restituisce il valore Null. È anche noto come Giunzione esterna destra . Pertanto, Outer è la clausola facoltativa da utilizzare con Right Join.

Possiamo capirlo con quanto segue rappresentazione visiva .

Join a sinistra vs Join a destra

Per leggere ulteriori informazioni su RIGHT JOIN, fare clic qui.

Sintassi della clausola LEFT JOIN

Quella che segue è la sintassi generale di LEFT JOIN:

 SELECT column_list FROM table_name1 LEFT JOIN table_name2 ON column_name1 = column_name2 WHERE join_condition 

Quella che segue è la sintassi generale di LEFT OUTER JOIN:

 SELECT column_list FROM table_name1 LEFT OUTER JOIN table_name2 ON column_name1 = column_name2 WHERE join_condition 

Sintassi della clausola RIGHT JOIN

Quella che segue è la sintassi generale di RIGHT JOIN:

 SELECT column_list FROM table_name1 RIGHT JOIN table_name2 ON column_name1 = column_name2 WHERE join_condition 

Quella che segue è la sintassi generale di RIGHT OUTER JOIN:

 SELECT column_list FROM table_name1 RIGHT OUTER JOIN table_name2 ON column_name1 = column_name2 WHERE join_condition 

JOIN A SINISTRA vs. JOIN A DESTRA

La seguente tabella comparativa spiega rapidamente le principali differenze:

SINISTRA UNISCITI ISCRIVITI GIUSTO
Unisce due o più tabelle, restituisce tutti i record della tabella di sinistra e le righe corrispondenti della tabella di destra. Viene utilizzato per unire due o più tabelle, restituisce tutti i record della tabella di destra e le righe corrispondenti della tabella di sinistra.
Il set di risultati conterrà un valore nullo se non è presente alcuna riga corrispondente nella tabella a destra. Il set di risultati conterrà un valore nullo se non è presente alcuna riga corrispondente nella tabella di sinistra.
È noto anche come LEFT OUTER JOIN. È anche chiamato RIGHT OUTER JOIN.

Esempio

Cerchiamo di comprendere le differenze tra i due join attraverso esempi. Supponiamo di avere una tabella denominata ' cliente ' E ' ordini ' che contiene i seguenti dati:

Tabella: cliente

Join a sinistra vs Join a destra

Tabella: ordini

Join a sinistra vs Join a destra

Esempio JOIN A SINISTRA

La seguente istruzione SQL restituisce i record corrispondenti da entrambe le tabelle utilizzando la query LEFT JOIN:

 SELECT cust_id, cust_name, order_num, order_date FROM customer LEFT JOIN orders ON customer.cust_id = orders.order_id WHERE order_date <'2020-04-30'; < pre> <p>After successful execution of the query, we will get the output as follows:</p> <img src="//techcodeview.com/img/mysql-tutorial/37/difference-between-left-join-5.webp" alt="Left Join vs Right Join"> <p> <strong>RIGHT JOIN Example</strong> </p> <p>Following SQL statement returns the matching records from both tables using the RIGHT JOIN query:</p> <pre> SELECT cust_id, cust_name, occupation, order_num, order_date FROM customer RIGHT JOIN orders ON cust_id = order_id ORDER BY order_date; </pre> <p>After successful execution of the query, we will get the output as follows:</p> <img src="//techcodeview.com/img/mysql-tutorial/37/difference-between-left-join-6.webp" alt="Left Join vs Right Join"> <hr></'2020-04-30';>

Dopo aver eseguito con successo la query, otterremo l'output come segue:

Join a sinistra vs Join a destra