Left Join i MySQL brukes til å søke etter poster fra flere tabeller. Dette leddet ligner på Inner Join-leddet som kan brukes med en SELECT-setning umiddelbart etter nøkkelordet FROM. Når vi bruker Left Join-klausulen, vil den returnere alle postene fra den første (venstre) tabellen, selv ingen samsvarende poster funnet fra den andre (høyre) tabellen. Hvis den ikke finner noen samsvarende post fra høyre sidetabell, returnerer den null.
Med andre ord returnerer Left Join-klausulen alle radene fra venstre tabell og samsvarende poster fra høyre tabell eller returnerer Null hvis ingen samsvarende post funnet. Denne Join kan også kalles en Venstre ytre skjøt klausul. Så, Outer er det valgfrie nøkkelordet å bruke med Left Join.
Vi kan forstå det med følgende visuelle representasjon der Left Joins returnerer alle poster fra venstre tabell og bare matchende poster fra høyre side tabell:
bfs og dfs
MySQL LEFT JOIN Syntaks
Følgende syntaks forklarer Left Join-klausulen for å slå sammen de to eller flere tabellene:
SELECT columns FROM table1 LEFT [OUTER] JOIN table2 ON Join_Condition;
I syntaksen ovenfor, tabell1 er bordet til venstre, og tabell 2 er bordet til høyre. Denne klausulen returnerer alle poster fra tabell1 og samsvarende poster fra tabell2 basert på spesifisert sammenføyningsbetingelse .
MySQL LEFT JOIN Eksempel
La oss ta noen eksempler for å forstå hvordan Left Join eller Left Outer Join-klausulen fungerer:
LEFT JOIN-klausul for sammenføyning av to tabeller
Her skal vi lage to tabeller ' kundenes og ' bestillinger' som inneholder følgende data:
Tabell: kunder
Tabell: bestillinger
For å velge poster fra begge tabellene, utfør følgende spørring:
SELECT customers.customer_id, cust_name, price, date FROM customers LEFT JOIN orders ON customers.customer_id = orders.customer_id;
Etter vellykket utførelse av spørringen, vil den gi følgende utdata:
MySQL LEFT JOIN med BRUK Klausul
Tabellkundene og bestillingene har samme kolonnenavn, som er kunde_id. I så fall kan MySQL Left Join også brukes med USING-klausulen for å få tilgang til postene. Følgende setning returnerer kunde-ID, kundenavn, yrke, pris og dato ved å bruke Left Join-klausulen med USING-nøkkelordet.
SELECT customer_id, cust_name, occupation, price, date FROM customers LEFT JOIN orders USING(customer_id);
Utsagnet ovenfor vil gi følgende utgang:
MySQL LEFT JOIN med Group By Clause
Left Join kan også brukes med GROUP BY-klausulen. Følgende setning returnerer kunde-ID, kundenavn, kvalifikasjon, pris og dato ved å bruke Left Join-klausulen med GROUP BY-klausulen.
SELECT customers.customer_id, cust_name, qualification, price, date FROM customers LEFT JOIN orders ON customers.customer_id = orders.customer_id GROUP BY price;
Utsagnet ovenfor vil gi følgende utgang:
VENSTRE BLI MED MED WHERE-klausulen
WHERE-klausulen brukes til å returnere filter resultat fra tabellen. Følgende eksempel illustrerer dette med Left Join-klausulen:
SELECT customer_id, cust_name, occupation, price, date FROM customers LEFT JOIN orders USING(customer_id) WHERE price>2500;
Denne uttalelsen gir følgende resultat:
MySQL LEFT JOIN Flere tabeller
Vi har allerede opprettet to tabeller kalt ' kundenes og ' bestillinger' . La oss lage en tabell til og gi den navnet ' kontakter som inneholder følgende data:
Utfør følgende setning for å slå sammen de tre bordkundene, bestillingene og kontaktene:
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;
Etter vellykket utførelse av spørringen ovenfor, vil den gi følgende utdata:
normalisering i databasen
Bruk av LEFT JOIN-klausulen for å få uovertrufne poster
LEFT JOIN-klausulen er også nyttig i slike tilfeller når vi ønsker å få poster i tabellen som ikke inneholder samsvarende rader med data fra en annen tabell.
Vi kan forstå det med følgende eksempel som bruker LEFT JOIN-klausulen for å finne en kunde som ikke har noe mobiltelefonnummer:
SELECT customer_id, cust_name, cellphone, homephone FROM customers LEFT JOIN contacts ON customer_id = contact_id WHERE cellphone IS NULL ;
Utsagnet ovenfor returnerer følgende utdata:
Forskjellen mellom WHERE og ON-klausulen i MySQL LEFT JOIN
I LEFT Join gir tilstanden WHERE og ON et annet resultat. Vi kan se følgende spørsmål for å forstå forskjellene deres:
HVOR klausul
SELECT cust_name, occupation, order_id, price, date FROM customers LEFT JOIN orders USING(customer_id) WHERE price=2500;
Det vil gi følgende utgang som returnerer:
PÅ klausul
SELECT cust_name, occupation, order_id, price, date FROM customers LEFT JOIN orders ON price=2500;
Det vil gi følgende utgang: