Kombinuje záznamy zdrojovej tabuľky, keď sa použije s ľubovolnou klauzulou FROM.
Syntax
TABUĽKA FROM1 [ LEFT | RIGHT ] TABUĽKA JOIN2
ON table1.field1compopr table2.field2
Operácie LEFT JOIN a RIGHT JOIN majú tieto časti:
| Časť | Popis |
|---|---|
| tabuľka1 , tabuľka2 | Názvy tabuliek, ktorých záznamy sa spájajú. |
| pole1 , pole2 | Názvy polí, ktoré sa spájajú. Polia musia mať rovnaký typ údajov a musia obsahovať rovnaký druh údajov, ale nemusia mať rovnaký názov. |
| compopr | Ľubovoľný operátor relačného porovnávania: "=", "<," "" "<>=", ">=" alebo "<>." |
Poznámky:
Pomocou operácie LEFT JOIN vytvorte vonkajšie spojenie zľava. Vonkajšie spojenie zľava zahrňuje všetky záznamy z prvej (ľavej) z dvoch tabuliek, a to aj vtedy, ak v záznamoch v druhej tabuľke (pravej) neexistujú žiadne zodpovedajúce hodnoty.
Pomocou operácie RIGHT JOIN vytvorte vonkajšie spojenie sprava. Vonkajšie spojenie sprava zahrňuje všetky záznamy z druhej (pravej) z dvoch tabuliek, a to aj vtedy, ak v záznamoch v prvej tabuľke (ľavej) neexistujú žiadne zodpovedajúce hodnoty.
Napríklad môžete použiť operáciu LEFT JOIN v tabuľkách Oddelenia (ľavá) a Zamestnanci (pravá) a vybrať všetky oddelenia vrátane tých, ktoré nemajú žiadnych zamestnancov. Ak chcete vybrať všetkých zamestnancov vrátane tých, ktorí nie sú priradení k žiadnemu oddeleniu, použite operáciu RIGHT JOIN.
Nasledujúci príklad ukazuje, ako je možné spojiť tabuľky Kategórie a Produkty podľa poľa IDKategórie. Dotaz vráti zoznam všetkých kategórií vrátane tých, ktoré neobsahujú produkty:
SELECT CategoryName, ProductName FROM Categories LEFT JOIN Products ON Categories.CategoryID = Products.CategoryID;
V tomto príklade je IDKategórie spojené pole, no nie je zahrnuté vo výsledkoch dotazu, pretože sa nenachádza v príkaze SELECT. Ak chcete zahrnúť spojené pole, zadajte názov poľa do príkazu SELECT – v tomto prípade Categories.CategoryID.
Ak chcete vytvoriť dotaz, ktorý obsahuje len záznamy, v ktorých sú údaje obsiahnuté v spojených poliach rovnaké, použite operáciu INNER JOIN.
- LEFT JOIN alebo RIGHT JOIN môžu byť vnorené do INNER JOIN, ale INNER JOIN nie je možné vnoriť do LEFT JOIN alebo RIGHT JOIN. Pozrite si diskusiu o vnorení v téme INNER JOIN a zistite, ako používať vnorené spojenie v rámci iných spojení.
- Môžete prepájať viaceré klauzuly ON. Pozrite si diskusiu o prepájaní klauzúl v téme INNER JOIN a naučte sa, ako na to.
Ak sa budete pokúšať spojiť polia obsahujúce údaje Memo alebo objektu OLE, vyskytne sa chyba.