logo

MySQL ESQUERRA UNIR

El Left Join a MySQL s'utilitza per consultar registres de diverses taules. Aquesta clàusula és similar a la clàusula Inner Join que es pot utilitzar amb una instrucció SELECT immediatament després de la paraula clau FROM. Quan utilitzem la clàusula Left Join, retornarà tots els registres de la primera taula (a l'esquerra), fins i tot no es troben registres coincidents de la segona taula (a la dreta). Si no troba cap registre de coincidències a la taula lateral dreta, retorna null.

En altres paraules, la clàusula Left Join retorna totes les files de la taula de l'esquerra i els registres coincidents de la taula dreta o retorna Null si no es troba cap registre coincident. Aquesta unió també es pot anomenar a Unió exterior esquerra clàusula. Per tant, Outer és la paraula clau opcional que cal utilitzar amb Left Join.

Ho podem entendre amb la següent representació visual on Left Joins retorna tots els registres de la taula de l'esquerra i només els registres coincidents de la taula lateral dreta:

MySQL ESQUERRA UNIR

Sintaxi de MySQL LEFT JOIN

La sintaxi següent explica la clàusula Left Join per unir dues o més taules:

 SELECT columns FROM table1 LEFT [OUTER] JOIN table2 ON Join_Condition; 

En la sintaxi anterior, taula 1 és la taula de l'esquerra, i taula 2 és la taula de la dreta. Aquesta clàusula retorna tots els registres de la taula 1 i els registres coincidents de la taula 2 segons l'especificat condició d'unió .

.06 com a fracció

Exemple de MySQL LEFT JOIN

Prenguem alguns exemples per entendre el funcionament de la clàusula Left Join o Left Outer Join:

mètode de comparació java

Clàusula LEFT JOIN per unir dues taules

Aquí, anem a crear dues taules ' clients i ' ordres' que conté les dades següents:

Taula: clients

MySQL ESQUERRA UNIR

Taula: comandes

MySQL ESQUERRA UNIR

Per seleccionar registres de les dues taules, executeu la consulta següent:

 SELECT customers.customer_id, cust_name, price, date FROM customers LEFT JOIN orders ON customers.customer_id = orders.customer_id; 

Després d'executar correctament la consulta, donarà la següent sortida:

llenguatge java bàsic
MySQL ESQUERRA UNIR

MySQL LEFT JOIN amb la clàusula USING

La taula clients i comandes tenen el mateix nom de columna, que és customer_id. En aquest cas, MySQL Left Join també es pot utilitzar amb la clàusula USING per accedir als registres. La declaració següent retorna l'identificador del client, el nom del client, l'ocupació, el preu i la data mitjançant la clàusula Left Join amb la paraula clau USING.

 SELECT customer_id, cust_name, occupation, price, date FROM customers LEFT JOIN orders USING(customer_id); 

La declaració anterior donarà la següent sortida:

MySQL ESQUERRA UNIR

MySQL LEFT JOIN amb la clàusula Group By

La unió esquerra també es pot utilitzar amb la clàusula GROUP BY. La declaració següent retorna l'identificador del client, el nom del client, la qualificació, el preu i la data mitjançant la clàusula Left Join amb la clàusula 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 declaració anterior donarà la següent sortida:

MySQL ESQUERRA UNIR

LEFT JOIN amb la clàusula WHERE

La clàusula WHERE s'utilitza per retornar el filtre resultat de la taula. L'exemple següent ho il·lustra amb la clàusula Left Join:

 SELECT customer_id, cust_name, occupation, price, date FROM customers LEFT JOIN orders USING(customer_id) WHERE price>2500; 

Aquesta afirmació dóna el següent resultat:

MySQL ESQUERRA UNIR

MySQL LEFT JOIN Taules múltiples

Ja hem creat dues taules anomenades ' clients i ' ordres' . Creem una taula més i l'anomenem com a ' contactes' que conté les dades següents:

MySQL ESQUERRA UNIR

Executeu la instrucció següent per unir-vos als tres clients, comandes i contactes de la taula:

subcomissari de policia
 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; 

Després d'executar correctament la consulta anterior, donarà la sortida següent:

MySQL ESQUERRA UNIR

Ús de la clàusula LEFT JOIN per obtenir registres no coincidents

La clàusula LEFT JOIN també és útil en aquest cas quan volem obtenir registres a la taula que no continguin cap fila de dades coincidents d'una altra taula.

Ho podem entendre amb l'exemple següent que utilitza la clàusula LEFT JOIN per trobar un client que no té número de telèfon mòbil:

gossos de prestatge
 SELECT customer_id, cust_name, cellphone, homephone FROM customers LEFT JOIN contacts ON customer_id = contact_id WHERE cellphone IS NULL ; 

La declaració anterior retorna la sortida següent:

MySQL ESQUERRA UNIR

Diferència entre la clàusula ON i ON a MySQL LEFT JOIN

A la unió ESQUERRA, les condicions ON i ON donen un resultat diferent. Podem veure les consultes següents per entendre les seves diferències:

Clàusula ON

 SELECT cust_name, occupation, order_id, price, date FROM customers LEFT JOIN orders USING(customer_id) WHERE price=2500; 

Donarà la següent sortida que retorna:

MySQL ESQUERRA UNIR

Clàusula ON

 SELECT cust_name, occupation, order_id, price, date FROM customers LEFT JOIN orders ON price=2500; 

Donarà la següent sortida:

MySQL ESQUERRA UNIR

NOTA: La condició ON i ON de la clàusula Inner Join sempre retorna resultats equivalents.