Operacijos LEFT JOIN, RIGHT JOIN

Taikoma
„Access“, skirta „Microsoft 365“ „Access 2024“ Access 2021 Access 2019 Access 2016

Sujungia šaltinio lentelės įrašus naudojant bet kurioje sąlygoje FROM.

Sintaksė

FROM table1 [ LEFT | RIGHT ] JOIN table2
ON lentelė1.laukas1lyginimo_operatorius lentelė2.laukas2

Operacijos LEFT JOIN ir RIGHT JOIN yra sudarytos iš šių dalių:

Dalis Aprašymas
lentelė1, lentelė2 Lentelių, kurių įrašai suderinti, pavadinimai.
laukas1, laukas2 Sujungiamų laukų pavadinimai. Laukai turi būti to paties duomenų tipo ir turėti vienodos rūšies duomenis, bet jie neprivalo turėti to paties pavadinimo.
lyginimo_operatorius Bet kuris santykinis lyginimo operatorius: "=", "<," "><=", ">=" arba "<>."

      

Pastabos

Operacija LEFT JOIN naudojama norint sukurti kairįjį išorinį sujungimą. Kairieji išoriniai sujungimai apima visus įrašus iš pirmosios (kairėje) iš dviejų lentelių, net jei nėra sutampančių įrašų reikšmių antroje lentelėje (dešinėje).

Naudokite operaciją RIGHT JOIN, norėdami sukurti dešinįjį išorinį sujungimą. Dešinieji išoriniai sujungimai apima visus įrašus iš antrosios (dešiniosios) iš dviejų lentelių, net jei nėra sutampančių įrašų reikšmių pirmojoje lentelėje (kairėje).

Pavyzdžiui, galite naudoti LEFT JOIN su lentelėmis Skyriai (kairėje) ir Darbuotojai (dešinėje), kad pasirinktumėte visus skyrius, įskaitant tuos, kuriems nėra priskirta darbuotojų. Norėdami pasirinkti visus darbuotojus, įskaitant tuos, kurie nepriskirti skyriui, turėtumėte naudoti RIGHT JOIN.

Tolesniame pavyzdyje parodyta, kaip galima sujungti Kategorijų ir Produktų lenteles lauke CategoryID. Užklausa sukuria sąrašą visų kategorijų, įskaitant tas, kuriose nėra produktų:

SELECT CategoryName, ProductName FROM Categories LEFT JOIN Products ON Categories.CategoryID = Products.CategoryID;

Šiame pavyzdyje CategoryID yra sujungtas laukas, tačiau jis neįtrauktas į užklausos rezultatus, nes jis neįtrauktas į sakinį SELECT. Norėdami įtraukti sujungtą lauką, į sakinį SELECT įveskite lauko pavadinimą. Categories.CategoryID

Norėdami sukurti užklausą, kurioje yra tik įrašai, kuriuose duomenys sujungtuose laukuose yra tokie patys, naudokite operaciją INNER JOIN.

  • LEFT JOIN arba RIGHT JOIN galima įdėti į INNNER JOIN, tačiau INNNER JOIN negalima įdėti į LEFT JOIN ar RIGHT JOIN. Žr. diskusiją apie įdėjimą INNER JOIN temoje, kad sužinotumėte, kaip sujungimus įdėti į kitus sujungimus.
  • Galite susieti kelias sąlygas ON. Žr. diskusiją apie sąlygų susiejimą INNER JOIN temoje, kad sužinotumėte, kaip tai padaryti.

Jei bandysite sujungti laukus, kuriuose yra Memo arba OLE objekto duomenys, įvyks klaida.