logo

MySQL LEFT JOIN

Levi spoj v MySQL se uporablja za poizvedovanje po zapisih iz več tabel. Ta člen je podoben členu Inner Join, ki ga lahko uporabite s stavkom SELECT takoj za ključno besedo FROM. Ko uporabimo klavzulo Left Join, vrne vse zapise iz prve (leve) tabele, tudi nobenega ujemajočega se zapisa iz druge (desne) tabele. Če ne najde nobenega ujemajočega se zapisa iz tabele na desni strani, vrne nič.

Z drugimi besedami, klavzula Left Join vrne vse vrstice iz leve tabele in ujemajoče se zapise iz desne tabele ali vrne Null, če ni najden ujemajoči se zapis. To pridružitev lahko imenujemo tudi a Levi zunanji spoj klavzula. Outer je torej neobvezna ključna beseda za uporabo z Left Join.

To lahko razumemo z naslednjo vizualno predstavitvijo, kjer Left Joins vrne vse zapise iz leve tabele in samo ujemajoče se zapise iz desne stranske tabele:

MySQL LEFT JOIN

Sintaksa MySQL LEFT JOIN

Naslednja sintaksa pojasnjuje klavzulo Left Join za združevanje dveh ali več tabel:

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

V zgornji sintaksi je tabela1 je leva miza in tabela2 je tabela na desni strani. Ta člen vrne vse zapise iz tabele1 in ujemajoče se zapise iz tabele2 na podlagi podanega pogoj pridružitve .

Igralka Rakul Preet Singh

Primer MySQL LEFT JOIN

Vzemimo nekaj primerov za razumevanje delovanja klavzule Left Join ali Left Outer Join:

dvojno vezan seznam

Klavzula LEFT JOIN za združevanje dveh tabel

Tukaj bomo ustvarili dve tabeli ' strank in ' naročila' ki vsebuje naslednje podatke:

Tabela: stranke

MySQL LEFT JOIN

Tabela: naročila

MySQL LEFT JOIN

Če želite izbrati zapise iz obeh tabel, izvedite naslednjo poizvedbo:

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

Po uspešni izvedbi poizvedbe bo dal naslednje rezultate:

kako dobiti apple emojis na android
MySQL LEFT JOIN

MySQL LEFT JOIN s klavzulo USING

Tabela strank in naročil ima isto ime stolpca, ki je customer_id. V tem primeru lahko MySQL Left Join uporabite tudi s klavzulo USING za dostop do zapisov. Naslednji stavek vrne ID stranke, ime stranke, poklic, ceno in datum z uporabo klavzule Left Join s ključno besedo USING.

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

Zgornja izjava bo dala naslednje rezultate:

MySQL LEFT JOIN

MySQL LEFT JOIN s klavzulo Group By

Levi spoj lahko uporabite tudi s klavzulo GROUP BY. Naslednji stavek vrne ID stranke, ime stranke, kvalifikacijo, ceno in datum z uporabo klavzule Left Join s klavzulo 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; 

Zgornja izjava bo dala naslednje rezultate:

MySQL LEFT JOIN

LEFT JOIN s klavzulo WHERE

Klavzula WHERE se uporablja za vrnitev filter rezultat iz tabele. Naslednji primer to ponazarja s klavzulo Left Join:

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

Ta izjava daje spodnji rezultat:

MySQL LEFT JOIN

MySQL LEFT JOIN Več tabel

Ustvarili smo že dve tabeli z imenom ' strank in ' naročila' . Ustvarimo še eno tabelo in jo poimenujmo kot ' kontakti«, ki vsebuje naslednje podatke:

MySQL LEFT JOIN

Izvedite naslednji stavek, da se pridružite trem tabelam stranke, naročila in kontakti:

java je enaka
 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; 

Po uspešni izvedbi zgornje poizvedbe bo dal naslednje rezultate:

MySQL LEFT JOIN

Uporaba klavzule LEFT JOIN za pridobivanje neujemajočih se zapisov

Klavzula LEFT JOIN je uporabna tudi v primeru, ko želimo dobiti zapise v tabeli, ki ne vsebuje nobene ujemajoče se vrstice podatkov iz druge tabele.

To lahko razumemo z naslednjim primerom, ki uporablja klavzulo LEFT JOIN za iskanje stranke, ki nima številke mobilnega telefona:

izberite iz več tabel v sql
 SELECT customer_id, cust_name, cellphone, homephone FROM customers LEFT JOIN contacts ON customer_id = contact_id WHERE cellphone IS NULL ; 

Zgornji stavek vrne naslednje rezultate:

MySQL LEFT JOIN

Razlika med stavkom WHERE in ON v MySQL LEFT JOIN

V LEVEM spoju dajeta pogoja WHERE in ON drugačen rezultat. Ogledamo si lahko naslednje poizvedbe, da razumemo njihove razlike:

Klavzula WHERE

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

Podal bo naslednji rezultat, ki se vrne:

MySQL LEFT JOIN

ON klavzula

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

Dalo bo naslednje rezultate:

MySQL LEFT JOIN

OPOMBA: Pogoja WHERE in ON v klavzuli Inner Join vedno vrneta enakovredne rezultate.