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 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
Tablica: narudžbe
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 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 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:
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 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:
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:
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:
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:
ON klauzula
SELECT cust_name, occupation, order_id, price, date FROM customers LEFT JOIN orders ON price=2500;
To će dati sljedeći izlaz: