MySQL ha principalmente due tipi di join chiamati LEFT JOIN e RIGHT JOIN. La differenza principale tra queste join è l’inclusione delle righe non abbinate. La LEFT JOIN include tutti i record dal lato sinistro e le righe abbinate dalla tabella destra, mentre la RIGHT JOIN restituisce tutte le righe dal lato destro e le righe non abbinate dalla tabella sinistra. In questa sezione, conosceremo le differenze popolari tra LEFT e RIGHT join. Prima di esplorare il confronto, cerchiamo di capire la clausola JOIN, LEFT JOIN e RIGHT JOIN in MySQL.
Che cos’è la clausola JOIN?
Un join è usato per interrogare i dati da più tabelle e restituisce il risultato combinato da due o più tabelle attraverso una condizione. La condizione nella clausola di join indica come le colonne sono abbinate 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 abbinati della tabella di destra o restituisce null se non trova alcun record corrispondente. È anche conosciuta come Left Outer Join. Quindi, Outer è la parola chiave opzionale da usare con Left Join.
Possiamo capirlo con la seguente rappresentazione visiva:
Per leggere maggiori informazioni sul LEFT join, clicca qui.
Cos’è la clausola RIGHT JOIN?
La clausola Right Join unisce due o più tabelle e restituisce tutte le righe della tabella di destra e solo i risultati dell’altra tabella che soddisfano la condizione di unione specificata. Se trova record non abbinati dalla tabella di sinistra, restituisce il valore Null. È anche conosciuto come Right Outer Join. Quindi, Outer è la clausola opzionale da usare con Right Join.
Possiamo capirlo con la seguente rappresentazione visiva.
Per leggere maggiori informazioni su RIGHT JOIN, clicca qui.
Sintassi della clausola LEFT JOIN
La seguente è la sintassi generale della LEFT JOIN:
La seguente è la sintassi generale della LEFT OUTER JOIN:
Sintassi della clausola RIGHT JOIN
La seguente è la sintassi generale della RIGHT JOIN:
La seguente è la sintassi generale della RIGHT OUTER JOIN:
LEFT JOIN vs. RIGHT JOIN
La seguente tabella di confronto spiega le loro principali differenze in modo rapido:
LEFT JOIN | RIGHT JOIN |
---|---|
Unisce due o più tabelle, restituisce tutti i record della tabella di sinistra e le righe corrispondenti della tabella di destra. | Si usa per unire due o più tabelle, restituisce tutti i record dalla tabella di destra e le righe corrispondenti dalla tabella di sinistra. |
Il set di risultati contiene un valore nullo se non c’è una riga corrispondente nella tabella di destra. | |
E’ anche conosciuta come LEFT OUTER JOIN. | E’ anche chiamata RIGHT OUTER JOIN. |
Esempio
Comprendiamo le differenze tra le due unioni attraverso degli esempi. Supponiamo di avere una tabella chiamata “cliente” e “ordini” che contiene i seguenti dati:
Tabella: cliente
Tabella: ordini
LEFT JOIN Esempio
La seguente istruzione SQL restituisce i record corrispondenti da entrambe le tabelle usando la query LEFT JOIN:
Dopo aver eseguito con successo la query, otterremo l’output come segue:
RIGHT JOIN Esempio
La seguente istruzione SQL restituisce i record corrispondenti da entrambe le tabelle usando la query RIGHT JOIN:
Dopo aver eseguito con successo la query, otterremo l’output come segue: