Operácie LEFT JOIN, RIGHT JOIN

Vzťahuje sa na
Access pre Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

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.