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 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 șiorders
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 coloanaorderNumber
șistatus
suntNULL
.,
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 sauNULL
dacă salariatul nu este responsabil de orice client. - Al doilea
LEFT JOIN
returnează plățile de fiecare client reprezentat de un angajat sauNULL
î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