logo

MySQL LEFT JOIN

Left Join MySQL izmanto, lai vaicātu ierakstus no vairākām tabulām. Šī klauzula ir līdzīga iekšējai pievienošanās klauzulai, ko var izmantot ar SELECT priekšrakstu tūlīt aiz atslēgvārda FROM. Kad mēs izmantojam kreiso savienojuma klauzulu, tā atgriezīs visus ierakstus no pirmās (kreisās puses) tabulas, pat neviena atbilstoša ieraksta no otrās (labās puses) tabulas. Ja tas neatradīs nevienu atbilstības ierakstu no labās sānu tabulas, atgriež nulli.

Citiem vārdiem sakot, klauzula Left Join atgriež visas rindas no kreisās tabulas un atbilstošos ierakstus no labās tabulas vai atgriež Null, ja nav atrasts neviens atbilstošs ieraksts. Šo pievienošanos var saukt arī par a Kreisais ārējais savienojums klauzula. Tātad ārējais ir izvēles atslēgvārds, ko izmantot kopā ar kreiso pievienošanos.

Mēs to varam saprast ar šādu vizuālo attēlojumu, kur Left Joins atgriež visus ierakstus no kreisās tabulas un tikai atbilstošos ierakstus no labās sānu tabulas:

MySQL LEFT JOIN

MySQL LEFT JOIN Sintakse

Šī sintakse izskaidro kreiso savienojuma klauzulu, lai savienotu divas vai vairākas tabulas:

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

Iepriekš minētajā sintaksē tabula1 ir kreisās puses tabula un tabula2 ir labās puses galds. Šī klauzula atgriež visus ierakstus no tabulas1 un atbilstošos ierakstus no tabulas2, pamatojoties uz norādīto pievienošanās nosacījums .

āmrija vs āpsis

MySQL LEFT JOIN Piemērs

Ņemsim dažus piemērus, lai izprastu kreisā savienojuma vai kreisā ārējā savienojuma klauzulas darbību:

java if else paziņojums

LEFT JOIN klauzula divu tabulu savienošanai

Šeit mēs izveidosim divas tabulas. klientu un ' pavēles' kas satur šādus datus:

Tabula: klienti

MySQL LEFT JOIN

Tabula: pasūtījumi

MySQL LEFT JOIN

Lai atlasītu ierakstus no abām tabulām, izpildiet šādu vaicājumu:

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

Pēc veiksmīgas vaicājuma izpildes tas sniegs šādu izvadi:

java paziņojums
MySQL LEFT JOIN

MySQL LEFT JOIN ar IZMANTOŠANAS klauzulu

Tabulas klientiem un pasūtījumiem ir vienāds kolonnas nosaukums, kas ir klienta_id. Tādā gadījumā MySQL Left Join var izmantot arī ar USING klauzulu, lai piekļūtu ierakstiem. Šis paziņojums atgriež klienta ID, klienta vārdu, nodarbošanos, cenu un datumu, izmantojot kreiso pievienošanās klauzulu ar atslēgvārdu USING.

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

Iepriekš minētais paziņojums sniegs šādu rezultātu:

MySQL LEFT JOIN

MySQL LEFT JOIN ar Group By Clause

Kreiso pievienošanos var izmantot arī ar klauzulu GROUP BY. Šis paziņojums atgriež klienta ID, klienta vārdu, kvalifikāciju, cenu un datumu, izmantojot klauzulu Left Join ar klauzulu 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; 

Iepriekš minētais paziņojums sniegs šādu rezultātu:

MySQL LEFT JOIN

LEFT JOIN ar WHERE klauzulu

WHERE klauzula tiek izmantota, lai atgrieztu filtru rezultāts no tabulas. Šis piemērs ilustrē to ar kreiso pievienošanās klauzulu:

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

Šis paziņojums sniedz šādu rezultātu:

MySQL LEFT JOIN

MySQL LEFT JOIN vairākām tabulām

Mēs jau esam izveidojuši divas tabulas ar nosaukumu ' klientu un ' pavēles' . Izveidosim vēl vienu tabulu un nosauksim to kā ' kontaktpersonas”, kas satur šādus datus:

MySQL LEFT JOIN

Izpildiet šo paziņojumu, lai pievienotu trīs tabulas klientus, pasūtījumus un kontaktpersonas:

prioritārā rinda
 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; 

Pēc veiksmīgas iepriekš minētā vaicājuma izpildes tas sniegs šādu izvadi:

MySQL LEFT JOIN

Klauzulas LEFT JOIN izmantošana, lai iegūtu nesaskaņotus ierakstus

LEFT JOIN klauzula ir noderīga arī tādā gadījumā, ja mēs vēlamies tabulā iegūt ierakstus, kuros nav nevienas atbilstošas ​​​​datu rindas no citas tabulas.

Mēs to varam saprast, izmantojot šādu piemēru, kurā tiek izmantota LEFT JOIN klauzula, lai atrastu klientu, kuram nav mobilā tālruņa numura:

atinstalēt angular cli
 SELECT customer_id, cust_name, cellphone, homephone FROM customers LEFT JOIN contacts ON customer_id = contact_id WHERE cellphone IS NULL ; 

Iepriekš minētais paziņojums atgriež šādu izvadi:

MySQL LEFT JOIN

Atšķirība starp WHERE un ON klauzulu pakalpojumā MySQL LEFT JOIN

Sadaļā LEFT Join nosacījums WHERE un ON sniedz atšķirīgu rezultātu. Mēs varam redzēt šādus vaicājumus, lai izprastu to atšķirības:

KUR Klauzula

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

Tas sniegs šādu izvadi, kas atgriezīsies:

MySQL LEFT JOIN

PAR klauzulu

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

Tas dos šādu rezultātu:

MySQL LEFT JOIN

PIEZĪME: WHERE un ON nosacījumi iekšējā savienojuma klauzulā vienmēr atgriež līdzvērtīgus rezultātus.