Levé spojení v MySQL se používá k dotazování záznamů z více tabulek. Tato klauzule je podobná klauzuli Inner Join, kterou lze použít s příkazem SELECT bezprostředně za klíčovým slovem FROM. Když použijeme klauzuli Left Join, vrátí všechny záznamy z první (levé) tabulky, dokonce ani žádné odpovídající záznamy nalezené z druhé (pravé) tabulky. Pokud nenajde žádný záznam shody z pravé postranní tabulky, vrátí hodnotu null.
Jinými slovy, klauzule Left Join vrátí všechny řádky z levé tabulky a odpovídající záznamy z pravé tabulky nebo vrátí hodnotu Null, pokud nebyl nalezen žádný odpovídající záznam. Toto spojení lze také nazvat a Levý vnější spoj doložka. Vnější je tedy nepovinné klíčové slovo pro použití s levým spojením.
Můžeme to pochopit pomocí následující vizuální reprezentace, kde Left Joins vrátí všechny záznamy z levé tabulky a pouze odpovídající záznamy z pravé boční tabulky:
Syntaxe MySQL LEFT JOIN
Následující syntaxe vysvětluje klauzuli Left Join pro spojení dvou nebo více tabulek:
personální výběrová komise význam
SELECT columns FROM table1 LEFT [OUTER] JOIN table2 ON Join_Condition;
Ve výše uvedené syntaxi stůl 1 je levý stůl a tabulka2 je stůl na pravé straně. Tato klauzule vrátí všechny záznamy z tabulky1 a odpovídající záznamy z tabulky2 na základě zadaného připojit podmínku .
Příklad MySQL LEFT JOIN
Vezměme si několik příkladů, abychom pochopili fungování klauzule Left Join nebo Left Outer Join:
Klauzule LEFT JOIN pro spojení dvou tabulek
Zde vytvoříme dvě tabulky ' zákazníků a ' objednávky' který obsahuje následující údaje:
Tabulka: zákazníci
tabulka popisů v mysql
Tabulka: objednávky
Chcete-li vybrat záznamy z obou tabulek, proveďte následující dotaz:
SELECT customers.customer_id, cust_name, price, date FROM customers LEFT JOIN orders ON customers.customer_id = orders.customer_id;
Po úspěšném provedení dotazu poskytne následující výstup:
MySQL LEFT JOIN s USING Clause
Tabulka zákazníci a objednávky mají stejný název sloupce, který je customer_id. V takovém případě lze pro přístup k záznamům použít také MySQL Left Join s klauzulí USING. Následující příkaz vrátí ID zákazníka, jméno zákazníka, povolání, cenu a datum pomocí klauzule Left Join s klíčovým slovem USING.
SELECT customer_id, cust_name, occupation, price, date FROM customers LEFT JOIN orders USING(customer_id);
Výše uvedené prohlášení poskytne následující výstup:
MySQL LEFT JOIN s Group By Clause
Levé spojení lze také použít s klauzulí GROUP BY. Následující příkaz vrátí ID zákazníka, jméno zákazníka, kvalifikaci, cenu a datum pomocí klauzule Left Join s klauzulí GROUP BY.
SELECT customers.customer_id, cust_name, qualification, price, date FROM customers LEFT JOIN orders ON customers.customer_id = orders.customer_id GROUP BY price;
Výše uvedené prohlášení poskytne následující výstup:
VLEVO JOIN s klauzulí WHERE
Klauzule WHERE se používá k vrácení filtr výsledek z tabulky. Následující příklad to ilustruje s klauzulí Left Join:
SELECT customer_id, cust_name, occupation, price, date FROM customers LEFT JOIN orders USING(customer_id) WHERE price>2500;
Toto prohlášení dává níže uvedený výsledek:
MySQL LEFT JOIN Multiple Tables
Již jsme vytvořili dvě tabulky s názvem ' zákazníků a ' objednávky' . Vytvořme ještě jednu tabulku a pojmenujeme ji jako „ kontakty“, který obsahuje následující údaje:
Provedením následujícího příkazu se připojíte ke třem tabulkovým zákazníkům, objednávkám a kontaktům:
rozdíl mezi láskou a láskou
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;
Po úspěšném provedení výše uvedeného dotazu poskytne následující výstup:
Použití klauzule LEFT JOIN k získání neshodných záznamů
Klauzule LEFT JOIN je také užitečná v takovém případě, kdy chceme v tabulce získat záznamy, které neobsahují žádné odpovídající řádky dat z jiné tabulky.
Můžeme to pochopit pomocí následujícího příkladu, který používá klauzuli LEFT JOIN k nalezení zákazníka, který nemá číslo mobilního telefonu:
SELECT customer_id, cust_name, cellphone, homephone FROM customers LEFT JOIN contacts ON customer_id = contact_id WHERE cellphone IS NULL ;
Výše uvedený příkaz vrátí následující výstup:
Rozdíl mezi klauzulí WHERE a ON v MySQL LEFT JOIN
V LEFT Join dává podmínka WHERE a ON jiný výsledek. Můžeme vidět následující dotazy, abychom pochopili jejich rozdíly:
Klauzule WHERE
SELECT cust_name, occupation, order_id, price, date FROM customers LEFT JOIN orders USING(customer_id) WHERE price=2500;
Poskytne následující výstup, který vrátí:
řetězec do json java
Ustanovení ON
SELECT cust_name, occupation, order_id, price, date FROM customers LEFT JOIN orders ON price=2500;
Poskytne následující výstup: