Operacija INNER JOIN

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

Sujungia įrašus iš dviejų lentelių, kai yra sutampančių reikšmių bendrame lauke.

Sintaksė

FROM table1 INNER JOIN lentelė2 ON table1. laukas1lyginimo_operatorius lentelė2. laukas2

Operacija INNER JOIN yra sudaryta iš šių dalių:

Dalis Aprašymas
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ų tipo 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šorinį sujungimą.

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ą, Categories.CategoryIDšiuo atveju .

Taip pat sakinyje JOIN galite susieti kelias sąlygas ON naudodami šią sintaksę:

SELECT laukai
FROM table1 INNER JOIN table2
ANT stalo1. laukas1sudėtinė2. 1laukas IR
ANT stalo1. laukas2compoprtable2. 2 laukas) ARBA
ANT stalo1. laukas3sudėtinė2. 3 laukas)];

Sakinius JOIN taip pat galite įdėti naudodami šią sintaksę:

SELECT laukai
FROM table1 INNER JOIN
(lentelė2 INNER JOIN [( ]lentelė3
[INNER JOIN [( ]tablex [INNER JOIN ...)]
ANT stalo3. field3compoprtablex. laukasx)]
ANT stalo2. laukas2sudėtinė3.3 laukas)
ANT stalo1. laukas1sudėtinė2. laukas2;

LEFT JOIN arba RIGHT JOIN galima įdėti į INNNER JOIN, tačiau INNNER JOIN negalima įdėti į LEFT JOIN ar RIGHT JOIN.