Oppsummering: i denne opplæringen vil du lære om MySQL LEFT JOIN klausulen, og hvordan du skal bruke det til spørring data fra to eller flere tabeller.
Introduksjon til MySQL VENSTRE BLI med
LEFT JOIN lar deg spørring data fra to eller flere tabeller. Lik INNER JOIN klausulen, LEFT JOIN er et valgfritt punkt på SELECT uttalelse, som vises umiddelbart etter FROM klausulen.,
Tenk deg at du ønsker å bli med i to tabeller t1 og t2.
følgende uttalelse viser hvordan du kan bruke LEFT JOIN klausulen til å bli med i to tabeller:
Code language: SQL (Structured Query Language) (sql)
Når du bruker LEFT JOIN klausulen, konsepter venstre bordet, og den høyre tabellen er innført.
I over syntaks, t1 er du til venstre bord og t2 er rett bord.,
LEFT JOIN klausulen velger data fra venstre tabellen (t1). Det kamper hver rad fra venstre tabellen (t1) med hver rad fra retten tabell(t2) basert på join_condition.
Hvis radene fra begge tabellene føre bli med tilstanden evalueres til TRUE, LEFT JOIN kombiner kolonner, rader fra begge bord til en ny rad, og inkluderer denne nye raden i resultatet rader.,
I tilfelle rad fra venstre tabellen (t1) ikke samsvarer med noen rad fra høyre bord(t2), LEFT JOIN fortsatt kombinerer kolonner, rader fra begge tabellene inn en ny rad, og inkluderer den nye raden i resultatet rader. Imidlertid, den bruker NULL for alle kolonnene i raden fra høyre bord.
med andre ord, LEFT JOIN returnerer alle radene fra venstre tabellen uavhengig av om en rad fra venstre bordet har en matchende rad fra høyre bord eller ikke., Hvis det ikke er noen treff, kolonnene i raden fra høyre tabellen vil inneholde NULL.
følgende Venn-diagram hjelper deg med å visualisere hvordan LEFT JOIN klausulen fungerer:
MySQL VENSTRE BLI med eksempler
La oss ta noen eksempler på bruk av LEFT JOIN klausulen.,
1) ved Hjelp av MySQL-LEFT JOIN-setningsdel til å bli med to tabeller
Se følgende tabeller customers og orders i eksempeldatabasen.
Hver kunde kan ha null eller flere bestillinger mens hver bestilling må tilhøre en kunde.,
Denne spørringen bruker LEFT JOIN klausul for å finne alle kunder og deres bestillinger:
Code language: SQL (Structured Query Language) (sql)
Alternativt kan du spare litt å skrive ved hjelp av tabell aliaser:
Code language: SQL (Structured Query Language) (sql)
I dette eksempelet:
customerser du til venstre bord ogorderser rett bord.LEFT JOINklausulen gir alle kunder, inkludert kunder som har ingen ordre., Hvis en kunde har ingen ordre, verdiene i kolonnenorderNumberogstatuserNULL.,
Fordi både tabell kunder og ordrer som har samme kolonne navn ( customerNumber) i delta tilstand med lik operatør, kan du bruke den BRUKE syntaks som følger:
Code language: SQL (Structured Query Language) (sql)
følgende setninger er tilsvarende:
Code language: SQL (Structured Query Language) (sql)
Og
Code language: SQL (Structured Query Language) (sql)
Hvis du bytter LEFT JOIN klausulen av INNER JOIN klausulen, vil du få det bare for kunder som har minst én ordre.,
2) ved Hjelp av MySQL-LEFT JOIN-setningsdel å finne uovertruffen rader
LEFT JOIN klausulen er veldig nyttig når du vil finne rader i en tabell som ikke har et tilsvarende rad fra en annen tabell.,»>
for å finne kunder som har ingen rekkefølge:
Code language: SQL (Structured Query Language) (sql)
3) Ved hjelp av MySQL VENSTRE BLI med å delta i tre tabeller
Se følgende tre tabeller employees, customers, og payments:
Dette eksemplet bruker to LEFT JOIN klausuler til å delta i tre tabeller: employees, customers, og payments.,
Code language: SQL (Structured Query Language) (sql)
Dette bildet viser delvis utgang:
Hvordan det fungerer.
- første
LEFT JOINreturnerer alle ansatte og kunder, som representerte hver ansatt ellerNULLhvis den ansatte ikke har ansvar for alle kunder. - andre
LEFT JOINreturnerer betaling for hver kunde, representert ved en ansatt ellerNULLhvis kunden har ingen betaling.
Tilstanden i WHERE-betingelsen vs., PÅ punkt
Se følgende eksempel.
Code language: SQL (Structured Query Language) (sql)
Dette eksemplet brukes LEFT JOIN klausulen spørring data fra tabeller orders og orderDetails. Spørringen returnerer orden og sin linje av elementer av ordrenummeret 10123.,
Imidlertid, hvis du flytter den tilstand fra WHERE klausulen ON klausulen:
Code language: SQL (Structured Query Language) (sql)
Det vil ha en annen betydning.,
I dette tilfellet, returnerer spørringen alle ordrer, men bare for 10123 vil ha artikler knyttet til det som i følgende bilde:
legg Merke til at for INNER JOIN klausulen, tilstanden i ON klausulen er tilsvarende tilstand i WHERE klausulen.
I denne opplæringen, har du lært hvordan du bruker MySQL LEFT JOIN klausulen til å bli med data fra to eller flere tabeller.,
- Var denne opplæringen nyttig?
- YesNo