logo

MySQL LEFT JOIN

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:

MySQL LEFT JOIN

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

MySQL LEFT JOIN

Tabel: comenzi

MySQL LEFT JOIN

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

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

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:

MySQL LEFT JOIN

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

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:

MySQL LEFT JOIN

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:

MySQL LEFT JOIN

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:

MySQL LEFT JOIN

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:

MySQL LEFT JOIN

Clauza ON

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

Va da urmatoarea iesire:

MySQL LEFT JOIN

NOTĂ: Condițiile WHERE și ON din clauza Inner Join returnează întotdeauna rezultate echivalente.