MySQL-LEFT JOIN

Resumé: i denne tutorial vil du lære om MySQL LEFT JOIN klausul, og hvordan man anvender det til at forespørge på data fra to eller flere tabeller.

Introduktion til MySQL LEFT JOIN

LEFT JOIN giver dig mulighed for at forespørge på data fra to eller flere tabeller. Ligner INNER JOIN klausul, LEFT JOIN er en valgfri bestemmelse af SELECT erklæring, der vises umiddelbart efter FROM klausul.,

Antag, at du vil deltage i to tabeller t1 og t2.

Den følgende sætning viser, hvordan man bruger LEFT JOIN klausulen til at deltage i to tabeller:

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

Når du bruger LEFT JOIN klausul, begreber af den venstre tabel, og den højre tabel er indført.

i ovenstående syntaks er t1 den venstre tabel og t2 den rigtige tabel.,

LEFT JOIN klausul vælger data, der starter fra venstre tabel (t1). Det passer hver række fra venstre tabel (t1) med hver række fra højre tabel(t2 baseret på join_condition.

Hvis rækkerne fra begge tabeller forårsager, at sammenføjningstilstanden evalueres til TRUE, kombinerer LEFT JOIN kolonner med rækker fra begge tabeller til en ny række og inkluderer denne nye række i resultatrækkerne.,

I tilfælde af at række fra venstre tabel (t1), ikke stemmer overens med nogen træk fra den højre tabel(t2), LEFT JOIN stadig kombinerer kolonner, rækker fra begge tabeller i en ny række og omfatter den nye række i resultatet rækker. Det bruger dog NULL for alle kolonnerne i rækken fra højre tabel.

med andre ord, LEFT JOIN returnerer alle rækker fra venstre tabel, uanset om en række fra venstre tabel har en matchende række fra højre tabel eller ej., Hvis der ikke er nogen match, vil kolonnerne i rækken fra højre tabel indeholde NULL.

følgende Venn-diagram hjælper dig med at visualisere, hvordan LEFT JOIN klausul værker:

MySQL-LEFT JOIN – Venn-Diagram

MySQL-LEFT JOIN eksempler

Lad os tage nogle eksempler på brug af LEFT JOIN klausul.,

1) ved Hjælp af MySQL LEFT JOIN-delsætning til at deltage i to tabeller

Se følgende tabeller customers og orders i eksempeldatabasen.

den Enkelte kunde kan have nul eller flere ordrer, mens hver ordre, skal tilhøre en kunde.,

Denne forespørgsel bruger LEFT JOIN klausul at finde alle kunder og deres ordrer:

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

Alternativt, kan du spare nogle at skrive ved hjælp af tabel aliaser:

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

I dette eksempel:

  • customers er den venstre tabel, og orders er det rigtige bord.
  • LEFT JOIN klausul returnerer alle kunder inklusive de kunder, der ikke har nogen ordre., Hvis en kunde ikke har nogen ordre, er værdierne i kolonnen orderNumber og status NULL.,

Fordi begge tabellen kunder og ordrer, har de samme kolonne navn ( customerNumber) i slutte tilstand med den samme operatør, du kan bruge ved HJÆLP af syntaks som følger:

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

følgende bestemmelser svarer:

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

Og

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

Hvis du erstatte LEFT JOIN bestemmelse af INNER JOIN klausul, vil du få det kun kunder, som har mindst én ordre.,

2) ved Hjælp af MySQL LEFT JOIN-delsætning til at finde uovertruffen rækker

LEFT JOIN klausul er meget nyttigt, når du vil finde rækker i en tabel, der ikke har en matchende linje fra en anden tabel.,”>

til at finde kunder, der ikke har orden:

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

3) Ved hjælp af MySQL VENSTRE DELTAG for at deltage i tre tabeller

Se de følgende tre tabeller employees customers og payments:

Dette eksempel bruger to LEFT JOIN klausuler til at deltage i de tre tabeller: employees customers og payments.,

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

Dette billede viser delvis output:

Hvordan det virker.

  • første LEFT JOIN returnerer alle medarbejdere og kunder, der repræsenterede den enkelte medarbejder eller NULL hvis medarbejderen ikke ansvarlig for enhver kunde.
  • den anden LEFT JOIN returnerer betalinger for hver kunde repræsenteret af en medarbejder ellerNULL Hvis kunden ikke har nogen betaling.

tilstand i hvor klausul vs., På klausul

se følgende eksempel.

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

Dette eksempel brugte LEFT JOIN klausul til at forespørge på data fra tabeller orders og orderDetails. Forespørgslen returnerer ordren og dens linjeposter med ordrenummeret 10123.,

Men, hvis du flytter den betingelse fra WHERE bestemmelse ON klausul:

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

Det vil have en anden betydning.,

I dette tilfælde, at forespørgslen returnerer alle ordrer, men kun for 10123 vil have linjeposter, der er forbundet med det, som i følgende billede:

Bemærk, at for INNER JOIN bestemmelse, betingelse i ON bestemmelse svarer til den tilstand, i WHERE klausul.

i denne tutorial har du lært, hvordan du bruger Mys .l LEFT JOIN klausul til at tilslutte data fra to eller flere tabeller.,

  • var denne vejledning nyttig?
  • YesNo

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *