A Left Join a MySQL-ben több tábla rekordjainak lekérdezésére szolgál. Ez a záradék hasonlít az Inner Join záradékhoz, amely közvetlenül a FROM kulcsszó után használható SELECT utasítással. Amikor a Left Join záradékot használjuk, akkor az összes rekordot visszaadja az első (bal oldali) táblából, még akkor is, ha a második (jobb oldali) táblából nem talál egyező rekordot. Ha nem talál egyezési rekordot a jobb oldali táblából, akkor nullát ad vissza.
Más szavakkal, a Left Join záradék visszaadja a bal oldali tábla összes sorát és a jobb oldali táblázat egyező rekordját, vagy nullát ad vissza, ha nem található egyező rekord. Ezt a csatlakozást a Bal külső csatlakozás kikötés. Tehát a Külső az opcionális kulcsszó, amelyet a bal oldali csatlakozáshoz használunk.
Megérthetjük a következő vizuális megjelenítéssel, ahol a Left Joins a bal oldali tábla összes rekordját adja vissza, és csak a megfelelő rekordokat a jobb oldali táblából:
MySQL LEFT JOIN szintaxis
A következő szintaxis magyarázza a Left Join záradékot a két vagy több tábla összekapcsolásához:
SELECT columns FROM table1 LEFT [OUTER] JOIN table2 ON Join_Condition;
A fenti szintaxisban Asztal 1 a bal oldali táblázat, és táblázat2 a jobb oldali asztal. Ez a záradék az 1. tábla összes rekordját és a 2. tábla egyező rekordját adja vissza a megadott alapján csatlakozási feltétel .
MySQL LEFT JOIN Példa
Vegyünk néhány példát, hogy megértsük a Left Join vagy a Left Outer Join záradék működését:
bináris fa inorder bejárása
LEFT JOIN záradék két tábla összekapcsolására
Itt két táblát fogunk létrehozni. ügyfelek és ' parancsok' amely a következő adatokat tartalmazza:
Táblázat: vásárlók
Táblázat: rendelések
Rekordok kiválasztásához mindkét táblából hajtsa végre a következő lekérdezést:
SELECT customers.customer_id, cust_name, price, date FROM customers LEFT JOIN orders ON customers.customer_id = orders.customer_id;
A lekérdezés sikeres végrehajtása után a következő kimenetet adja:
A MySQL LEFT JOIN a USING záradékkal
A tábla vásárlói és rendelései ugyanazzal az oszlopnévvel rendelkeznek, amely az ügyfél_azonosítója. Ebben az esetben a MySQL Left Join is használható a USING záradékkal a rekordokhoz való hozzáféréshez. A következő utasítás visszaadja az ügyfél azonosítóját, az ügyfél nevét, a foglalkozást, az árat és a dátumot a Left Join záradékkal és a USING kulcsszóval.
tagadás diszkrét matek
SELECT customer_id, cust_name, occupation, price, date FROM customers LEFT JOIN orders USING(customer_id);
A fenti kijelentés a következő kimenetet adja:
A MySQL LEFT CSATLAKOZÁSA a Group By Clause-hoz
A Left Join a GROUP BY záradékkal is használható. A következő utasítás visszaadja az ügyfél-azonosítót, az ügyfél nevét, a minősítést, az árat és a dátumot a Left Join záradék és a GROUP BY záradék használatával.
SELECT customers.customer_id, cust_name, qualification, price, date FROM customers LEFT JOIN orders ON customers.customer_id = orders.customer_id GROUP BY price;
A fenti kijelentés a következő kimenetet adja:
LEFT CSATLAKOZÁS a WHERE záradékkal
A WHERE záradék visszaadja a szűrő táblázat eredménye. A következő példa ezt szemlélteti a Left Join záradékkal:
SELECT customer_id, cust_name, occupation, price, date FROM customers LEFT JOIN orders USING(customer_id) WHERE price>2500;
Ez az állítás az alábbi eredményt adja:
MySQL LEFT JOIN Több tábla
Már létrehoztunk két táblát ügyfelek és ' parancsok' . Hozzunk létre még egy táblát, és nevezzük el: névjegyek', amely a következő adatokat tartalmazza:
Hajtsa végre a következő utasítást a három asztali ügyfelek, rendelések és kapcsolattartók összekapcsolásához:
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;
A fenti lekérdezés sikeres végrehajtása után a következő kimenetet adja:
A LEFT JOIN záradék használata páratlan rekordok eléréséhez
A LEFT JOIN záradék abban az esetben is hasznos, ha olyan rekordokat szeretnénk kapni a táblában, amelyek nem tartalmaznak egyező adatsort egy másik táblából.
sok szerencsét
Megérthetjük a következő példával, amely a LEFT JOIN záradékot használja egy olyan ügyfél megtalálására, akinek nincs mobiltelefonszáma:
SELECT customer_id, cust_name, cellphone, homephone FROM customers LEFT JOIN contacts ON customer_id = contact_id WHERE cellphone IS NULL ;
A fenti utasítás a következő kimenetet adja vissza:
Különbség a WHERE és az ON záradék között a MySQL LEFT JOIN-ban
A LEFT Join-ban a WHERE és ON feltétel eltérő eredményt ad. A következő lekérdezéseket láthatjuk, hogy megértsük a különbségeiket:
WHERE záradék
SELECT cust_name, occupation, order_id, price, date FROM customers LEFT JOIN orders USING(customer_id) WHERE price=2500;
A következő kimenetet adja vissza:
ON záradék
SELECT cust_name, occupation, order_id, price, date FROM customers LEFT JOIN orders ON price=2500;
A következő kimenetet adja: