Sujungia įrašus iš dviejų lentelių, kai yra sutampančių reikšmių bendrame lauke.
Sintaksė
FROM lentelė1 INNER JOIN lentelė2 ON lentelė1.laukas1lyginimo_operatorius lentelė2.laukas2
Operacija INNER JOIN yra sudaryta iš šių dalių:
Dalis |
Aprašas |
lentelė1, lentelė2 |
Lentelių, kurių įrašai suderinti, pavadinimai. |
laukas1, laukas2 |
Sujungiamų laukų pavadinimai. Jei jie nėra skaičius, laukai turi būti to paties duomenų tipas ir turėti vienodos rūšies duomenis, bet jų pavadinimas negali būti toks pat. |
lyginimo_operatorius |
Bet kuris santykinis lyginimo operatorius: „=“, „<“, „>“, „<=“, „>=“ arba „<>“. |
Pastabos
Operaciją INNER JOIN galite naudoti bet kurioje sąlygoje FROM. Tai dažniausiai pasitaikantis jungties tipas. Vidinės jungtys sujungia įrašus iš dviejų lentelių, kai yra sutampančių reikšmių abiems lentelėms bendrame lauke.
INNER JOIN galite naudoti su lentelėmis Skyriai ir Darbuotojai, norėdami pasirinkti visus darbuotojus kiekviename skyriuje. O jei norite pasirinkti visus skyrius (net jei kai kuriems nepriskirta darbuotojų) arba visus darbuotojus (net jei kai kurie nepriskirti jokiam skyriui), galite naudoti operaciją LEFT JOIN arba RIGHT JOIN, kad sukurtumėte išorinis sujungimas.
Jei bandysite sujungti laukus, kuriuose yra Memo arba OLE objekto duomenys, įvyks klaida.
Galite sujungti bet kokius du panašaus tipo skaitinius laukus. Pavyzdžiui, galite sujungti laukus AutoNumber ir Long, nes jie yra panašaus tipo. Tačiau negalite sujungti laukų tipų Vienas ir Dvigubas.
Tolesniame pavyzdyje parodyta, kaip galima sujungti Kategorijų ir Produktų lenteles lauke CategoryID:
SELECT CategoryName, ProductName
FROM Categories INNER JOIN Products ON Categories.CategoryID = Products.CategoryID;
Ankstesniame pavyzdyje, CategoryID yra sujungtas laukas, tačiau jis neįtrauktas į užklausos išvestį, nes jis neįtrauktas į sakinį SELECT. Norėdami įtraukti sujungtą lauką, į sakinį SELECT įtraukite lauko pavadinimą, šiuo atveju – Categories.CategoryID.
Taip pat sakinyje JOIN galite susieti kelias sąlygas ON naudodami šią sintaksę:
SELECT laukai
FROM lentelė1 INNER JOIN lentelė2 ON lentelė1.laukas1lyginimo_operatoriuslentelė2.laukas1 AND ON lentelė1.laukas2lyginimo_operatoriuslentelė2.laukas2) OR ON lentelė1.laukas3lyginimo_operatoriuslentelė2.laukas3)];Sakinius JOIN taip pat galite įdėti naudodami šią sintaksę:
SELECT laukai
FROM lentelė1 INNER JOIN (lentelė2 INNER JOIN [( ]lentelė3 [INNER JOIN [( ]lentelėx [INNER JOIN ...)] ON lentelė3.laukas3lyginimo_operatoriuslentelėx.laukasx)] ON lentelė2.laukas2lyginimo_operatoriuslentelė3.laukas3) ON lentelė1.laukas1lyginimo_operatoriuslentelė2.laukas2;LEFT JOIN arba RIGHT JOIN galima įdėti į INNNER JOIN, tačiau INNNER JOIN negalima įdėti į LEFT JOIN ar RIGHT JOIN.