Sujungia šaltinio lentelės įrašus naudojant bet kurioje sąlygoje FROM.
Sintaksė
FROM lentelė1 [ LEFT | RIGHT ] JOIN lentelė2
ON lentelė1.laukas1lyginimo_operatorius lentelė2.laukas2Operacijos LEFT JOIN ir RIGHT JOIN yra sudarytos iš šių dalių:
Dalis |
Aprašas |
lentelė1, lentelė2 |
Lentelių, kurių įrašai suderinti, pavadinimai. |
laukas1, laukas2 |
Sujungiamų laukų pavadinimai. Laukai turi būti to paties duomenų tipas ir turėti vienodos rūšies duomenis, bet jie neprivalo turėti to paties pavadinimo. |
lyginimo_operatorius |
Bet kuris santykinis lyginimo operatorius: „=“, „<“, „>“, „<=“, „>=“ arba „<>“. |
Pastabos
Naudokite operaciją LEFT JOIN, norėdami sukurti kairįjį šoninį 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į šoninį 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ą, šiuo atveju – 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 į INNER JOIN, bet INNER JOIN negalima įdėti į LEFT JOIN arba RIGHT JOIN. Peržiūrėkite diskusiją apie įdėjimo funkciją INNER JOIN temoje, kad sužinotumėte, kaip įdėti sujungimus į 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.