logo

„MySQL“ paliko prisijungimą

MySQL kairysis sujungimas naudojamas įrašams iš kelių lentelių pateikti užklausas. Ši sąlyga yra panaši į Inner Join sąlygą, kurią galima naudoti su SELECT teiginiu iškart po raktinio žodžio FROM. Kai mes naudojame sąlygą „Left Join“, ji grąžins visus įrašus iš pirmosios (kairiosios pusės) lentelės, net nerasta jokių atitinkančių įrašų iš antrosios (dešinės pusės) lentelės. Jei dešinėje šoninėje lentelėje neras jokių atitikmenų įrašo, grąžina nulį.

Kitaip tariant, „Left Join“ sąlyga grąžina visas kairiosios lentelės eilutes ir suderintus įrašus iš dešiniosios lentelės arba grąžina Null, jei nerastas atitinkantis įrašas. Šis prisijungimas taip pat gali būti vadinamas a Kairė išorinė jungtis sąlyga. Taigi, išorinis yra pasirenkamas raktinis žodis, naudojamas su kairiuoju prisijungimu.

Mes galime tai suprasti tokiu vaizdiniu vaizdu, kai kairiosios sujungimo funkcija grąžina visus įrašus iš kairės lentelės ir tik atitinkančius įrašus iš dešinės šoninės lentelės:

„MySQL“ paliko prisijungimą

„MySQL LEFT JOIN“ sintaksė

Ši sintaksė paaiškina kairiojo sujungimo sąlygą, skirtą sujungti dvi ar daugiau lentelių:

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

Aukščiau pateiktoje sintaksėje lentelė1 yra kairysis stalas ir lentelė2 yra dešinysis stalas. Ši sąlyga grąžina visus įrašus iš lentelės1 ir suderintus įrašus iš lentelės2 pagal nurodytą prisijungimo sąlyga .

MySQL LEFT JOIN pavyzdys

Paimkime keletą pavyzdžių, kad suprastume, kaip veikia kairiojo sujungimo arba kairiojo išorinio sujungimo sąlygos:

LEFT JOIN sąlyga, skirta dviejų lentelių sujungimui

Čia mes sukursime dvi lenteles klientų ir ' įsakymai' kuriame yra šie duomenys:

vandens ženklas žodyje

Lentelė: klientai

„MySQL“ paliko prisijungimą

Stalas: užsakymai

„MySQL“ paliko prisijungimą

Norėdami pasirinkti įrašus iš abiejų lentelių, vykdykite šią užklausą:

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

Sėkmingai įvykdžius užklausą, ji duos tokią išvestį:

„MySQL“ paliko prisijungimą

MySQL LEFT JOIN su USING sąlyga

Lentelės klientai ir užsakymai turi tą patį stulpelio pavadinimą, kuris yra kliento_id. Tokiu atveju MySQL Left Join taip pat gali būti naudojamas su USING sąlyga norint pasiekti įrašus. Šis teiginys pateikia kliento ID, kliento vardą, profesiją, kainą ir datą naudojant kairiojo prisijungimo sąlygą su raktiniu žodžiu USING.

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

Aukščiau pateiktas teiginys duos tokią išvestį:

„MySQL“ paliko prisijungimą

MySQL paliko prisijungimą prie grupės pagal sąlygą

Kairysis prisijungimas taip pat gali būti naudojamas su sąlyga GROUP BY. Šiame pareiškime pateikiamas kliento ID, kliento vardas, kvalifikacija, kaina ir data, naudojant kairiojo prisijungimo sąlygą su sąlyga GROUP BY.

Įrašykite json į failą python
 SELECT customers.customer_id, cust_name, qualification, price, date FROM customers LEFT JOIN orders ON customers.customer_id = orders.customer_id GROUP BY price; 

Aukščiau pateiktas teiginys duos tokią išvestį:

greitas rūšiavimas java
„MySQL“ paliko prisijungimą

LEFT JOIN su WHERE sąlyga

WHERE sąlyga naudojama norint grąžinti filtras rezultatas iš lentelės. Šis pavyzdys iliustruoja tai su kairiojo prisijungimo sąlyga:

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

Šis teiginys pateikia tokį rezultatą:

„MySQL“ paliko prisijungimą

MySQL LEFT JOIN prie kelių lentelių

Mes jau sukūrėme dvi lenteles pavadinimu ' klientų ir ' įsakymai' . Sukurkime dar vieną lentelę ir pavadinkime ją kaip ' kontaktai“, kuriame yra šie duomenys:

„MySQL“ paliko prisijungimą

Norėdami prisijungti prie trijų lentelių klientų, užsakymų ir kontaktų, atlikite šį pareiškimą:

 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; 

Sėkmingai įvykdžius aukščiau pateiktą užklausą, ji duos tokią išvestį:

„MySQL“ paliko prisijungimą

Jei norite gauti nesuderintų įrašų, naudokite sąlygą LEFT JOIN

LEFT JOIN sąlyga taip pat naudinga tokiu atveju, kai norime gauti lentelės įrašus, kuriuose nėra jokių atitinkančių duomenų eilučių iš kitos lentelės.

Tai galime suprasti naudodami šį pavyzdį, kuriame naudojama LEFT JOIN sąlyga, norint rasti klientą, kuris neturi mobiliojo telefono numerio:

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

Aukščiau pateiktas teiginys grąžina šią išvestį:

„MySQL“ paliko prisijungimą

Skirtumas tarp WHERE ir ON sąlygų MySQL LEFT JOIN

Kairiajame prisijungime sąlygos WHERE ir ON pateikia skirtingą rezultatą. Kad suprastume jų skirtumus, matome šias užklausas:

KUR išlyga

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

Tai pateiks tokią išvestį, kuri grąžins:

„MySQL“ paliko prisijungimą

ON sąlyga

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

Tai duos tokią išvestį:

skirtumas tarp meilės ir patinka
„MySQL“ paliko prisijungimą

PASTABA: sąlyga WHERE ir ON, esanti sąlygoje „Inner Join“, visada pateikia lygiaverčius rezultatus.