A MySQL-nek főként kétféle csatlakozási módja van, a LEFT JOIN és a RIGHT JOIN. A fő különbség ezen egyesítések között a nem illeszkedő sorok bevonása. A LEFT JOIN a bal oldali összes rekordot és az illeszkedő sorokat tartalmazza a jobb oldali táblázatból, míg a RIGHT JOIN a jobb oldali összes sort és az illeszkedés nélküli sorokat adja vissza a bal oldali táblázatból. Ebben a szakaszban megismerjük a LEFT és a RIGHT join közötti népszerű különbségeket. Az összehasonlítás feltárása előtt először értsük meg a JOIN, a LEFT JOIN és a RIGHT JOIN záradékot a MySQL-ben.
Mi a JOIN záradék?
A join több táblából származó adatok lekérdezésére szolgál, és egy feltétel segítségével két vagy több tábla együttes eredményét adja vissza. Az összekapcsolási záradékban szereplő feltétel megadja, hogy a megadott táblák közötti oszlopok hogyan illeszkednek egymáshoz.
Mi a LEFT JOIN záradék?
A Left Join záradék két vagy több táblát kapcsol össze, és visszaadja a bal oldali tábla összes sorát és a jobb oldali tábla illeszkedő rekordjait, vagy nullát ad vissza, ha nem talál egyező rekordot. Left Outer Join néven is ismert. Az Outer tehát a Left Joinhoz használható opcionális kulcsszó.
Az alábbi vizuális ábrázolással érthetjük meg:
A LEFT Joinról bővebben itt olvashat.
Mi a RIGHT JOIN záradék?
A Right Join záradék két vagy több táblát köt össze, és a jobb oldali tábla összes sorát adja vissza, és csak azokat az eredményeket a másik táblából, amelyek teljesítették a megadott csatlakozási feltételt. Ha a bal oldali táblából nem illeszkedő rekordokat talál, akkor null értéket ad vissza. Ezt jobb oldali külső csatlakozásnak is nevezik. Tehát az Outer a Right Joinhoz használható opcionális záradék.
Az alábbi vizuális ábrázolással érthetjük meg.
Ha további információkat szeretne olvasni a RIGHT JOINról, kattintson ide.
A LEFT JOIN záradék szintaxisa
A LEFT JOIN általános szintaxisa a következő:
A LEFT OUTER JOIN általános szintaxisa a következő:
A RIGHT JOIN záradék szintaxisa
A következő a RIGHT JOIN általános szintaxisa:
A következő a RIGHT OUTER JOIN általános szintaxisa:
LEFT JOIN vs. RIGHT JOIN
Az alábbi összehasonlító táblázat gyorsan kifejti a főbb különbségeket:
LEFT JOIN | RIGHT JOIN |
---|---|
Két vagy több táblát egyesít, a bal oldali tábla összes rekordját és a jobb oldali tábla megfelelő sorait adja vissza. | Két vagy több tábla összekapcsolására szolgál, visszaadja a jobb oldali tábla összes rekordját és a bal oldali tábla megfelelő sorait. |
Az eredményhalmaz null értéket tartalmaz, ha nincs megfelelő sor a jobb oldali táblázatban. | Az eredményhalmaz null értéket tartalmaz, ha nincs megfelelő sor a bal oldali táblázatban. |
LEFT OUTER JOIN néven is ismert. | RIGHT OUTER JOIN néven is ismert. |
Példa
Megértjük a két egyesítés közötti különbségeket példákon keresztül. Tegyük fel, hogy van egy “customer” és egy “orders” nevű táblánk, amely a következő adatokat tartalmazza:
Tábla: customer
Tábla: orders
LEFT JOIN Példa
A következő SQL utasítás a LEFT JOIN lekérdezéssel mindkét táblából visszaadja az egyező rekordokat:
A lekérdezés sikeres végrehajtása után a következő kimenetet kapjuk:
RIGHT JOIN Example
A következő SQL utasítás a RIGHT JOIN lekérdezéssel adja vissza az egyező rekordokat mindkét táblából:
A lekérdezés sikeres végrehajtása után a következő kimenetet kapjuk: