MySQL LEFT JOIN (Română)

rezumat: în acest tutorial, veți afla despre MySQLLEFT JOIN clauza și cum să-l aplice la interogarea datelor din două sau mai multe tabele.

Introducere în MySQL left JOIN

LEFT JOIN vă permite să interogați date din două sau mai multe tabele. Similar cu INNER JOIN clauză, LEFT JOIN este o clauză opțională de SELECT declarație, care apare imediat după FROM clauză.,

să Presupunem că doriți să se alăture două tabele t1 și t2.

următoarea declarație arată cum să utilizați LEFT JOIN clauză să se alăture două tabele:

Code language: SQL (Structured Query Language) (sql)

atunci Când utilizați LEFT JOIN clauză, conceptele de masa din stânga și dreapta tabel sunt introduse.

în sintaxa de mai sus, t1 este tabelul din stânga și t2 este tabelul din dreapta.,

LEFT JOIN clauza selectează date pornind de la masa din stânga (t1). Se potrivește cu fiecare rând din stânga tabelului (t1) cu fiecare rând din tabelul din dreapta(t2) pe baza join_condition.

Dacă rândurile din ambele tabele cauza se alăture condiție TRUE, LEFT JOIN combina coloanele de rândurile din ambele tabele la un rând nou și include acest nou rând în rezultatul rânduri.,

în cazul În care rând din stânga tabelului (t1) nu se potrivește cu orice rând din tabelul din dreapta(t2), LEFT JOIN încă combină coloanele din rândurile din ambele tabele într-un rând nou și include rând nou în rezultatul rânduri. Cu toate acestea, utilizează NULL pentru toate coloanele rândului din tabelul din dreapta.

cu alte cuvinte, LEFT JOIN returnează toate rândurile din tabelul din stânga, indiferent dacă un rând din tabelul din stânga are un rând de potrivire din tabelul din dreapta sau nu., Dacă nu există nicio potrivire, coloanele rândului din tabelul din dreapta vor conține NULL.

următoarea diagramă Venn vă ajută să vizualizați modul în care LEFT JOIN clauza de lucrări:

MySQL STÂNGA ALĂTURAȚI – Diagrama Venn

MySQL STÂNGA se ALĂTURE exemple

Să luăm câteva exemple de utilizare LEFT JOIN clauză.,

1) Folosind MySQL STÂNGA se ALĂTURE clauză să se alăture două tabele

a se Vedea tabelele următoare customers și orders în baza de date eșantion.

Fiecare client poate avea zero sau mai multe comenzi în timp ce fiecare comandă trebuie să aparțină clientului.,

Această interogare folosește LEFT JOIN clauza de a găsi toate de clienți și comenzile lor:

Code language: SQL (Structured Query Language) (sql)

Alternativ, puteți salva unele tastarea utilizând tabelul pseudonime:

Code language: SQL (Structured Query Language) (sql)

In acest exemplu:

  • customers este masa din stânga și orders este dreptul de masă.
  • clauza LEFT JOIN returnează toți clienții, inclusiv clienții care nu au nicio comandă., Dacă un client nu are nici o ordine, valorile din coloana orderNumber și status sunt NULL.,

Pentru că atât masa de clienți și comenzile au același nume de coloană ( customerNumber) în stare alătura cu operatorul egal, puteți utiliza FOLOSIND sintaxa, după cum urmează:

Code language: SQL (Structured Query Language) (sql)

clauzele următoare sunt echivalente:

Code language: SQL (Structured Query Language) (sql)

Și

Code language: SQL (Structured Query Language) (sql)

Dacă înlocuiți LEFT JOIN clauza de INNER JOIN clauză, veți obține doar clientilor care au cel puțin un ordin.,

2) Folosind MySQL STÂNGA se ALĂTURE clauză pentru a găsi neegalat rânduri

LEFT JOIN clauză este foarte util atunci când doriți să găsiți rânduri într-un tabel care nu au o potrivire rând dintr-un alt tabel.,”>

pentru a găsi clienți care nu au nici o ordine:

Code language: SQL (Structured Query Language) (sql)

3) Folosind MySQL STÂNGA ALĂTURAȚI-vă să se alăture trei tabele

a se Vedea următoarele trei tabele employees, customers și payments:

Acest exemplu utilizează două LEFT JOIN clauze care să se alăture celor trei tabele: employees, customers, și payments.,

Code language: SQL (Structured Query Language) (sql)

Această imagine arată parțială de ieșire:

Cum funcționează.

  • primul LEFT JOIN se întoarce toți angajații și clienții care au reprezentat fiecare angajat sau NULL dacă salariatul nu este responsabil de orice client.
  • Al doilea LEFT JOIN returnează plățile de fiecare client reprezentat de un angajat sau NULL în cazul în care clientul nu are de plată.

condiție în cazul în care clauza vs., Pe clauza

a se vedea următorul exemplu.

Code language: SQL (Structured Query Language) (sql)

Acest exemplu folosit LEFT JOIN clauza de interogare a datelor din tabele orders și orderDetails. Interogarea returnează comanda și elementele sale de linie ale numărului de ordine 10123.,

cu toate Acestea, dacă vă mutați starea de WHERE clauze ON clauza:

Code language: SQL (Structured Query Language) (sql)

Acesta va avea un sens diferit.,

În acest caz, interogarea returnează toate comenzile dar numai pentru 10123 va avea elemente de linie asociate cu acesta ca în imaginea următoare:

Observați că pentru INNER JOIN clauză, condiție în ON clauză este echivalent cu starea în WHERE clauză.

În acest tutorial, ați învățat cum să utilizați MySQL LEFT JOIN clauza să se alăture date din două sau mai multe tabele.,

  • a fost acest tutorial util?
  • YesNo

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *