Left Join în MySQL este folosit pentru a interoga înregistrările din mai multe tabele. Această clauză este similară cu clauza Inner Join care poate fi utilizată cu o instrucțiune SELECT imediat după cuvântul cheie FROM. Când folosim clauza Left Join, va returna toate înregistrările din primul tabel (din stânga), chiar și nicio înregistrare care se potrivește din cel de-al doilea tabel (din dreapta). Dacă nu va găsi nicio înregistrare de potriviri din tabelul lateral din dreapta, atunci returnează null.
Cu alte cuvinte, clauza Left Join returnează toate rândurile din tabelul din stânga și înregistrările potrivite din tabelul din dreapta sau returnează Null dacă nu s-a găsit nicio înregistrare care se potrivește. Această unire poate fi numită și a Left Outer Join clauză. Deci, Outer este cuvântul cheie opțional de utilizat cu Left Join.
O putem înțelege cu următoarea reprezentare vizuală în care Left Joins returnează toate înregistrările din tabelul din stânga și numai înregistrările care se potrivesc din tabelul din dreapta:
Sintaxa MySQL LEFT JOIN
Următoarea sintaxă explică clauza Left Join pentru a uni cele două sau mai multe tabele:
SELECT columns FROM table1 LEFT [OUTER] JOIN table2 ON Join_Condition;
În sintaxa de mai sus, tabelul 1 este masa din stânga și masa 2 este masa din dreapta. Această clauză returnează toate înregistrările din tabelul 1 și înregistrările potrivite din tabelul 2 pe baza specificatului condiția de alăturare .
MySQL LEFT JOIN Exemplu
Să luăm câteva exemple pentru a înțelege funcționarea clauzei Left Join sau Left Outer Join:
Clauza LEFT JOIN pentru unirea a două tabele
Aici, vom crea două tabele' Clienți' și ' Comenzi' care contine urmatoarele date:
Tabel: clienți
Tabel: comenzi
Pentru a selecta înregistrări din ambele tabele, executați următoarea interogare:
SELECT customers.customer_id, cust_name, price, date FROM customers LEFT JOIN orders ON customers.customer_id = orders.customer_id;
După executarea cu succes a interogării, va da următorul rezultat:
MySQL LEFT JOIN cu clauza USING
Tabelul Clienți și comenzile au același nume de coloană, care este customer_id. În acest caz, MySQL Left Join poate fi folosit și cu clauza USING pentru a accesa înregistrările. Următoarea declarație returnează ID-ul clientului, numele clientului, ocupația, prețul și data folosind clauza Left Join cu cuvântul cheie USING.
SELECT customer_id, cust_name, occupation, price, date FROM customers LEFT JOIN orders USING(customer_id);
Declarația de mai sus va da următorul rezultat:
MySQL LEFT JOIN cu Clauza Group By
Left Join poate fi folosit și cu clauza GROUP BY. Următoarea declarație returnează ID-ul clientului, numele clientului, calificarea, prețul și data folosind clauza Left Join cu clauza 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;
Declarația de mai sus va da următorul rezultat:
LEFT JOIN cu clauza WHERE
Clauza WHERE este folosită pentru a returna filtru rezultat din tabel. Următorul exemplu ilustrează acest lucru cu clauza Left Join:
SELECT customer_id, cust_name, occupation, price, date FROM customers LEFT JOIN orders USING(customer_id) WHERE price>2500;
Această afirmație dă următorul rezultat:
MySQL LEFT JOIN Tabele multiple
Am creat deja două tabele numite ' Clienți' și ' Comenzi' . Să mai creăm un tabel și să-l denumim ca „ contacte” care conține următoarele date:
Executați următoarea instrucțiune pentru a vă alătura celor trei clienți, comenzi și persoane de contact din tabel:
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;
După executarea cu succes a interogării de mai sus, va da următorul rezultat:
Utilizarea clauzei LEFT JOIN pentru a obține înregistrări nepotrivite
Clauza LEFT JOIN este de asemenea utilă într-un astfel de caz când dorim să obținem înregistrări în tabel care nu conține niciun rând de date potrivite dintr-un alt tabel.
O putem înțelege cu următorul exemplu care utilizează clauza LEFT JOIN pentru a găsi un client care nu are un număr de telefon mobil:
SELECT customer_id, cust_name, cellphone, homephone FROM customers LEFT JOIN contacts ON customer_id = contact_id WHERE cellphone IS NULL ;
Declarația de mai sus returnează următoarea ieșire:
Diferența dintre clauza WHERE și ON din MySQL LEFT JOIN
În LeFT Join, condiția WHERE și ON dă un rezultat diferit. Putem vedea următoarele interogări pentru a înțelege diferențele lor:
înlocuiți din șir în java
CLAUZA UNDE
SELECT cust_name, occupation, order_id, price, date FROM customers LEFT JOIN orders USING(customer_id) WHERE price=2500;
Va da următoarea ieșire care va returna:
Clauza ON
SELECT cust_name, occupation, order_id, price, date FROM customers LEFT JOIN orders ON price=2500;
Va da urmatoarea iesire: