logo

MySQL LIJEVO PRIDRUŽIVANJE

Lijevi spoj u MySQL-u koristi se za upite zapisa iz više tablica. Ova je klauzula slična klauzuli Inner Join koja se može koristiti s naredbom SELECT odmah nakon ključne riječi FROM. Kada koristimo klauzulu lijevog spajanja, ona će vratiti sve zapise iz prve (lijeve) tablice, čak ni nijedan odgovarajući zapis iz druge (desne) tablice. Ako ne pronađe nijedan podudarni zapis iz tablice s desne strane, vraća null.

Drugim riječima, klauzula Left Join vraća sve retke iz lijeve tablice i podudarne zapise iz desne tablice ili vraća Null ako nije pronađen odgovarajući zapis. Ovo spajanje također se može nazvati a Lijevi vanjski spoj klauzula. Dakle, Outer je izborna ključna riječ za korištenje s lijevim spajanjem.

Možemo to razumjeti sa sljedećim vizualnim prikazom gdje Left Joins vraća sve zapise iz lijeve tablice i samo podudarne zapise iz desne bočne tablice:

MySQL LIJEVO PRIDRUŽIVANJE

MySQL LEFT JOIN sintaksa

Sljedeća sintaksa objašnjava klauzulu lijevog spajanja za spajanje dvije ili više tablica:

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

U gornjoj sintaksi, stol 1 je lijevi stol, i tablica2 je desna tablica. Ova klauzula vraća sve zapise iz tablice1 i podudarne zapise iz tablice2 na temelju navedenog stanje pridruživanja .

lokalni datum java

Primjer MySQL LEFT JOIN

Uzmimo neke primjere da bismo razumjeli rad klauzule lijevog spajanja ili lijevog vanjskog spajanja:

java jezgra java

LEFT JOIN klauzula za spajanje dviju tablica

Ovdje ćemo stvoriti dvije tablice ' kupaca i ' narudžbe' koji sadrži sljedeće podatke:

Tablica: kupci

MySQL LIJEVO PRIDRUŽIVANJE

Tablica: narudžbe

MySQL LIJEVO PRIDRUŽIVANJE

Za odabir zapisa iz obje tablice izvršite sljedeći upit:

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

Nakon uspješnog izvršenja upita, dati će sljedeći izlaz:

java skener sljedeći
MySQL LIJEVO PRIDRUŽIVANJE

MySQL LEFT JOIN s USING klauzulom

Tablica kupci i narudžbe imaju isti naziv stupca, a to je customer_id. U tom slučaju, MySQL Left Join se također može koristiti s klauzulom USING za pristup zapisima. Sljedeća izjava vraća ID kupca, ime kupca, zanimanje, cijenu i datum pomoću klauzule lijevog spajanja s ključnom riječi USING.

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

Gornja izjava će dati sljedeći rezultat:

MySQL LIJEVO PRIDRUŽIVANJE

MySQL LEFT JOIN s klauzulom Group By

Lijevi spoj se također može koristiti s klauzulom GROUP BY. Sljedeća izjava vraća ID kupca, ime kupca, kvalifikaciju, cijenu i datum koristeći klauzulu lijevog spajanja s klauzulom 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; 

Gornja izjava će dati sljedeći rezultat:

MySQL LIJEVO PRIDRUŽIVANJE

LEFT JOIN s WHERE klauzulom

WHERE klauzula se koristi za vraćanje filtar rezultat iz tablice. Sljedeći primjer to ilustrira s klauzulom lijevog spajanja:

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

Ova izjava daje sljedeći rezultat:

MySQL LIJEVO PRIDRUŽIVANJE

MySQL LEFT JOIN Više tablica

Već smo kreirali dvije tablice pod nazivom ' kupaca i ' narudžbe' . Kreirajmo još jednu tablicu i nazovimo je kao ' kontakti' koji sadrži sljedeće podatke:

MySQL LIJEVO PRIDRUŽIVANJE

Izvršite sljedeću izjavu da biste spojili tri tablice kupaca, narudžbi i kontakata:

naziv posebnih znakova
 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; 

Nakon uspješnog izvršavanja gornjeg upita, dati će sljedeći izlaz:

MySQL LIJEVO PRIDRUŽIVANJE

Upotreba klauzule LEFT JOIN za dobivanje zapisa bez podudaranja

Klauzula LEFT JOIN također je korisna u slučaju kada želimo dobiti zapise u tablici koji ne sadrže nijedan odgovarajući redak podataka iz druge tablice.

Možemo to razumjeti pomoću sljedećeg primjera koji koristi klauzulu LEFT JOIN za pronalaženje kupca koji nema broj mobitela:

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

Gornja izjava vraća sljedeći izlaz:

MySQL LIJEVO PRIDRUŽIVANJE

Razlika između WHERE i ON klauzule u MySQL LEFT JOIN

U LIJEVOM spoju, uvjet WHERE i ON daje drugačiji rezultat. Možemo vidjeti sljedeće upite kako bismo razumjeli njihove razlike:

WHERE klauzula

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

Dat će sljedeći izlaz koji vraća:

MySQL LIJEVO PRIDRUŽIVANJE

ON klauzula

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

To će dati sljedeći izlaz:

MySQL LIJEVO PRIDRUŽIVANJE

NAPOMENA: uvjeti WHERE i ON u klauzuli Inner Join uvijek vraćaju ekvivalentne rezultate.