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:
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 .
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
Tabella: ordini
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:
'2020-04-30';>