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:
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
Taula: comandes
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 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 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:
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 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:
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:
Ú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:
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:
Clàusula ON
SELECT cust_name, occupation, order_id, price, date FROM customers LEFT JOIN orders ON price=2500;
Donarà la següent sortida: