logo

A MySQL LEFT CSATLAKOZÁS

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:

A MySQL LEFT CSATLAKOZÁS

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

A MySQL LEFT CSATLAKOZÁS

Táblázat: rendelések

A MySQL LEFT CSATLAKOZÁS

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 CSATLAKOZÁS

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ÁS

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:

A MySQL LEFT CSATLAKOZÁS

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:

A MySQL LEFT CSATLAKOZÁS

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:

A MySQL LEFT CSATLAKOZÁS

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 MySQL LEFT CSATLAKOZÁS

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:

A MySQL LEFT CSATLAKOZÁS

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:

A MySQL LEFT CSATLAKOZÁS

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:

A MySQL LEFT CSATLAKOZÁS

MEGJEGYZÉS: A WHERE és ON feltétel az Inner Join záradékban mindig egyenértékű eredményeket ad vissza.