Il Left Join in MySQL viene utilizzato per interrogare record da più tabelle. Questa clausola è simile alla clausola Inner Join che può essere utilizzata con un'istruzione SELECT immediatamente dopo la parola chiave FROM. Quando utilizziamo la clausola Left Join, restituirà tutti i record della prima tabella (a sinistra), anche nessun record corrispondente trovato nella seconda tabella (a destra). Se non trova alcun record di corrispondenze dalla tabella a destra, restituisce null.
In altre parole, la clausola Left Join restituisce tutte le righe della tabella di sinistra e i record corrispondenti della tabella di destra oppure restituisce Null se non viene trovato alcun record corrispondente. Questo Join può anche essere chiamato a Unione esterna sinistra clausola. Pertanto, Outer è la parola chiave facoltativa da utilizzare con Left Join.
Possiamo capirlo con la seguente rappresentazione visiva in cui Left Joins restituisce tutti i record della tabella di sinistra e solo i record corrispondenti della tabella di destra:
Sintassi MySQL LEFT JOIN
La seguente sintassi spiega la clausola Left Join per unire due o più tabelle:
SELECT columns FROM table1 LEFT [OUTER] JOIN table2 ON Join_Condition;
Nella sintassi precedente, Tabella 1 è la tabella di sinistra, e Tavolo 2 è la tabella a destra. Questa clausola restituisce tutti i record della tabella 1 e i record corrispondenti della tabella 2 in base a quanto specificato condizione di unione .
Esempio di MySQL LEFT JOIN
Facciamo alcuni esempi per comprendere il funzionamento della clausola Left Join o Left Outer Join:
Clausola LEFT JOIN per unire due tabelle
Qui creeremo due tabelle ' clienti' E ' ordini' che contiene i seguenti dati:
Tabella: clienti
Tabella: ordini
Per selezionare i record da entrambe le tabelle, eseguire la seguente query:
SELECT customers.customer_id, cust_name, price, date FROM customers LEFT JOIN orders ON customers.customer_id = orders.customer_id;
Dopo aver eseguito con successo la query, verrà restituito il seguente output:
inizializzatore di dizionario C#
MySQL LEFT JOIN con clausola USING
La tabella clienti e ordini hanno lo stesso nome di colonna, ovvero customer_id. In tal caso, MySQL Left Join può essere utilizzato anche con la clausola USING per accedere ai record. La seguente istruzione restituisce ID cliente, nome cliente, occupazione, prezzo e data utilizzando la clausola Left Join con la parola chiave USING.
SELECT customer_id, cust_name, occupation, price, date FROM customers LEFT JOIN orders USING(customer_id);
La dichiarazione di cui sopra fornirà il seguente output:
MySQL LEFT JOIN con clausola Group By
Il Left Join può essere utilizzato anche con la clausola GROUP BY. La seguente istruzione restituisce l'ID cliente, il nome del cliente, la qualifica, il prezzo e la data utilizzando la clausola Left Join con la clausola GROUP BY.
SELECT customers.customer_id, cust_name, qualification, price, date FROM customers LEFT JOIN orders ON customers.customer_id = orders.customer_id GROUP BY price;
La dichiarazione di cui sopra fornirà il seguente output:
UNISCITI A SINISTRA con la clausola WHERE
La clausola WHERE viene utilizzata per restituire il file filtro risultato dalla tabella. L'esempio seguente illustra ciò con la clausola Left Join:
SELECT customer_id, cust_name, occupation, price, date FROM customers LEFT JOIN orders USING(customer_id) WHERE price>2500;
Questa affermazione dà il risultato seguente:
MySQL LEFT JOIN su più tabelle
Abbiamo già creato due tabelle denominate ' clienti' E ' ordini' . Creiamo un'altra tabella e chiamiamola come ' contatti' che contiene i seguenti dati:
Esegui la seguente istruzione per unire le tre tabelle clienti, ordini e contatti:
SELECT customers.customer_id, cust_name, order_id, price, cellphone FROM customers LEFT JOIN contacts ON customer_id = contact_id LEFT JOIN orders ON customers.customer_id = orders.customer_id ORDER BY income;
Dopo aver eseguito con successo la query di cui sopra, verrà restituito il seguente output:
Utilizzo della clausola LEFT JOIN per ottenere record senza corrispondenza
La clausola LEFT JOIN è utile anche in questo caso quando vogliamo ottenere record nella tabella che non contiene righe di dati corrispondenti da un'altra tabella.
Lo possiamo capire con il seguente esempio che utilizza la clausola LEFT JOIN per trovare un cliente che non ha numero di cellulare:
RJ12 contro RJ11
SELECT customer_id, cust_name, cellphone, homephone FROM customers LEFT JOIN contacts ON customer_id = contact_id WHERE cellphone IS NULL ;
L'istruzione precedente restituisce il seguente output:
Differenza tra la clausola WHERE e ON in MySQL LEFT JOIN
Nel LEFT Join, la condizione WHERE e ON dà un risultato diverso. Possiamo vedere le seguenti query per comprenderne le differenze:
Dove la clausola
SELECT cust_name, occupation, order_id, price, date FROM customers LEFT JOIN orders USING(customer_id) WHERE price=2500;
Fornirà il seguente output che restituisce:
Clausola ON
SELECT cust_name, occupation, order_id, price, date FROM customers LEFT JOIN orders ON price=2500;
Fornirà il seguente output: