Left Join i MySQL bruges til at forespørge poster fra flere tabeller. Denne sætning ligner Inner Join-sætningen, der kan bruges med en SELECT-sætning umiddelbart efter FROM nøgleordet. Når vi bruger Left Join-klausulen, vil den returnere alle poster fra den første (venstre) tabel, selv ingen matchende poster fundet fra den anden (højre side) tabel. Hvis den ikke finder nogen matchende post fra højre sidetabel, returnerer den null.
Med andre ord returnerer Left Join-sætningen alle rækkerne fra den venstre tabel og matchede poster fra den højre tabel eller returnerer Null, hvis der ikke blev fundet nogen matchende post. Denne Join kan også kaldes en Venstre Ydre Sammenføjning klausul. Så Ydre er det valgfri nøgleord, der skal bruges med Left Join.
Vi kan forstå det med følgende visuelle repræsentation, hvor Left Joins returnerer alle poster fra den venstre tabel og kun de matchende poster fra den højre side tabel:
statisk i c
MySQL LEFT JOIN Syntaks
Følgende syntaks forklarer Left Join-sætningen for at forbinde de to eller flere tabeller:
SELECT columns FROM table1 LEFT [OUTER] JOIN table2 ON Join_Condition;
I ovenstående syntaks, tabel 1 er det venstre bord, og tabel 2 er det højre bord. Denne klausul returnerer alle poster fra tabel1 og matchede poster fra tabel2 baseret på det angivne sammenføjningsbetingelse .
MySQL LEFT JOIN Eksempel
Lad os tage nogle eksempler for at forstå, hvordan Left Join eller Left Outer Join-klausulen fungerer:
LEFT JOIN-klausul for sammenføjning af to tabeller
Her skal vi lave to tabeller ' kunders og ' Ordre:% s' der indeholder følgende data:
Tabel: kunder
Tabel: ordrer
For at vælge poster fra begge tabeller skal du udføre følgende forespørgsel:
SELECT customers.customer_id, cust_name, price, date FROM customers LEFT JOIN orders ON customers.customer_id = orders.customer_id;
Efter vellykket udførelse af forespørgslen vil den give følgende output:
MySQL LEFT JOIN med BRUG af klausul
Tabellen kunder og ordrer har samme kolonnenavn, som er kunde_id. I så fald kan MySQL Left Join også bruges med USING-klausulen for at få adgang til posterne. Følgende erklæring returnerer kunde-id, kundenavn, erhverv, pris og dato ved hjælp af Left Join-klausulen med USING-nøgleordet.
SELECT customer_id, cust_name, occupation, price, date FROM customers LEFT JOIN orders USING(customer_id);
Ovenstående erklæring vil give følgende output:
MySQL LEFT JOIN med Group By Clause
Left Join kan også bruges sammen med GROUP BY-klausulen. Følgende erklæring returnerer kunde-id, kundenavn, kvalifikation, pris og dato ved hjælp af 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;
Ovenstående erklæring vil give følgende output:
VENSTRE JOIN med WHERE-klausul
WHERE-klausulen bruges til at 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 erklæring giver følgende resultat:
MySQL LEFT JOIN Flere borde
Vi har allerede oprettet to tabeller med navnet ' kunders og ' Ordre:% s' . Lad os oprette endnu en tabel og navngive den som ' kontakter', der indeholder følgende data:
Udfør følgende erklæring for at slutte dig til de tre bordkunder, ordrer og kontakter:
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;
Efter vellykket udførelse af ovenstående forespørgsel vil den give følgende output:
java stak
Brug af LEFT JOIN-klausul for at få uovertrufne poster
LEFT JOIN-sætningen er også nyttig i et sådant tilfælde, når vi ønsker at få poster i tabellen, der ikke indeholder nogen matchende rækker af data fra en anden tabel.
Vi kan forstå det med følgende eksempel, der bruger LEFT JOIN-klausulen til at finde en kunde, der ikke har noget mobiltelefonnummer:
SELECT customer_id, cust_name, cellphone, homephone FROM customers LEFT JOIN contacts ON customer_id = contact_id WHERE cellphone IS NULL ;
Ovenstående sætning returnerer følgende output:
Forskel mellem WHERE og ON klausul i MySQL LEFT JOIN
I LEFT Join giver betingelsen WHERE og ON et andet resultat. Vi kan se følgende forespørgsler for at forstå deres forskelle:
HVOR klausul
SELECT cust_name, occupation, order_id, price, date FROM customers LEFT JOIN orders USING(customer_id) WHERE price=2500;
Det vil give følgende output, der returnerer:
ON klausul
SELECT cust_name, occupation, order_id, price, date FROM customers LEFT JOIN orders ON price=2500;
Det vil give følgende output: