logo

MySQL VENSTRE BLI MED

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 VENSTRE BLI MED

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

MySQL VENSTRE BLI MED

Tabell: bestillinger

MySQL VENSTRE BLI MED

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 VENSTRE BLI MED

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 VENSTRE BLI MED

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:

MySQL VENSTRE BLI MED

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 VENSTRE BLI MED

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:

MySQL VENSTRE BLI MED

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
MySQL VENSTRE BLI MED

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:

MySQL VENSTRE BLI MED

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:

MySQL VENSTRE BLI MED

PÅ klausul

 SELECT cust_name, occupation, order_id, price, date FROM customers LEFT JOIN orders ON price=2500; 

Det vil gi følgende utgang:

MySQL VENSTRE BLI MED

MERK: WHERE og ON-tilstanden i Inner Join-klausulen gir alltid tilsvarende resultater.