Kombinuje záznamy zdrojovej tabuľky, keď sa použije s ľubovolnou klauzulou FROM.
Syntax
FROM tabuľka1 [LEFT | RIGHT ] JOIN tabuľka2
ON tabuľka1.pole1operpor tabuľka2.pole2Operá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 obsahovať rovnaký typ údajov, ako aj druh údajov, ale nemusia mať rovnaký názov. |
compopr |
Ľubovoľný operátor relácie porovnávania: „=“, „<“, „>“, „<=“, „>=“ alebo „<>“. |
Poznámky
Na vytvorenie vonkajšieho spojenia zľava použite operáciu LEFT JOIN. 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.
Na vytvorenie vonkajšieho spojenia sprava použite operáciu RIGHT JOIN. 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.