LEFT JOIN, RIGHT JOIN művelet

FROM záradékban kombinálják a forrástáblák rekordjait.

Szintaxis

FROM tábla1 [ LEFT | RIGHT ] JOIN tábla2

ON tábla1.mező1 hasonlító művelet tábla2.mező

A LEFT JOIN és a RIGHT JOIN műveletnek a következők a részei:

Elem Leírás
tábla1, tábla2 A két tábla neve, melyek rekordjaiból az egyesített rekordok készülnek.
mező1, mező2 Az egyesítendő mezők neve. Ha a mezők nem szám típusúak, akkor ugyanolyan adattípushoz kell tartozniuk, ugyanolyan jellegű adatokat kell tartalmazniuk, de a nevük lehet különböző.
hasonlító művelet Bármely összehasonlító művelet: "=," "<," ">," "<=," ">=," vagy "<>."

Megjegyzés

A LEFT JOIN művelettel bal oldali laza illesztést hozhatunk létre. A bal oldali laza illesztésben a két tábla közül az elsőnek (a bal oldalinak) minden rekordja megjelenik, akkor is, ha nem illeszkedik hozzájuk érték a második (jobb oldali) táblában.

A RIGHT JOIN művelet létesít jobb oldali laza illesztést. A jobb oldali laza illesztésben a két tábla közül a másodiknak (a jobb oldalinak) minden rekordja megjelenik, akkor is, ha nem illeszkedik hozzájuk érték az első (bal oldali) táblában.

Például a LEFT JOIN segítségével válogathatjuk ki az összes részleget a Részlegek táblából (baloldal) és alkalmazottat az Alkalmazottak táblából (jobb oldal), úgy hogy azok a részlegek is megjelennek, amelyekhez nem tartozik alkalmazott. Ha ugyanilyen listát szeretnénk készíteni úgy, hogy azok az alkalmazottak is megjelenjenek, akik nem tartoznak egy részleghez sem, akkor használjuk a RIGHT JOIN műveletet.

A következő példa azt mutatja, hogyan illeszthető a Kategóriák és a Termékek tábla a Kategóriakód mező segítségével. A lekérdezés minden kategóriát kiválaszt azokat is, amelyekbe nem tartozik termék:

SELECT Kategórianév, Terméknév

FROM Kategóriák LEFT JOIN Termékek

ON Kategóriák.Kategóriakód = Termékek.Kategóriakód;

A példában Kategóriakód az illesztett mező, de a lekérdezés eredményében nem jelenik meg, hiszen nem szerepel a SELECT utasításrészben. Ha az illesztett mezőt is szeretnénk megjeleníteni, írjuk be a mezőnevet SELECT után (ez a fenti példában: Kategóriák.Kategóriakód).

Figyelem

Ha csak azokat a rekordokat szeretnénk kiválogatni, amelyek az illesztett mezőben azonos értéket tartalmaznak, használjuk az INNER JOIN műveletet.

A LEFT JOIN vagy RIGHT JOIN szerepelhet INNER JOIN utasításon belül, INNER JOIN azonban nem írható LEFT JOIN vagy RIGHT JOIN utasításba. Az INNER JOIN művelet leírásából tudhatjuk meg, hogyan ágyazhatók egymásba különböző illesztő műveletek.

Több ON záradék is összekapcsolható. Evvel kapcsolatban bővebb információt kaphatunk az INNER JOIN művelet leírásában.

Ha Feljegyzés vagy OLE objektumot tartalmazó mezőket próbálunk illeszteni, hiba lép fel.