Operacja INNER JOIN

Dotyczy
Access dla Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Łączy rekordy z dwóch tabel, ilekroć we wspólnym polu występują pasujące wartości.

Składnia

FROM tabela1 INNER JOIN tabela2 ON tabela1. pole1 operator, tabela2. pole2

Operacja INNER JOIN zawiera następujące segmenty:

Segment Opis
tabela1, tabela2 Nazwy tabel, z których pochodzą łączone rekordy.
pole1, pole2 Nazwy sprzęganych pól. Jeśli nie są to pola numeryczne, muszą mieć ten sam typ danych i zawierać ten sam rodzaj danych, ale mogą mieć inne nazwy.
operator_porównania Dowolny relacyjny operator porównania: "="," "<," ">," "<=>"," lub "<>."

      

Spostrzeżenia

Operacji INNER JOIN możesz użyć w dowolnej klauzuli FROM. Jest to najpopularniejszy typ sprzężenia. Sprzężenia wewnętrzne łączą rekordy z dwóch tabel, ilekroć we wspólnym dla obu tabel polu występują pasujące wartości.

Operacji INNER JOIN możesz użyć dla tabel Działy i Pracownicy, aby wybrać wszystkich pracowników z każdego działu. Natomiast w celu wybrania wszystkich działów (nawet jeśli do niektórych z nich nie są przypisani żadni pracownicy) lub wszystkich pracowników (nawet jeśli niektórzy z nich nie są przypisani do żadnego działu) możesz użyć operacji LEFT JOIN lub RIGHT JOIN, aby utworzyć sprzężenie zewnętrzne.

W przypadku próby połączenia pól zawierających dane typu Nota lub Obiekt OLE wystąpi błąd.

Możesz połączyć dowolne dwa pola liczbowe podobnego typu. Na przykład możesz połączyć pola typu Autonumerowanie i Długie, ponieważ są one podobnego typu. Nie możesz jednak połączyć pól typu Pojedyncze i Podwójne.

W poniższym przykładzie pokazano, jak utworzyć sprzężenie tabel Kategorie i Produkty w polu Identyfikator_kategorii:

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

W poprzednim przykładzie pole Identyfikator_kategorii jest polem sprzężonym, które jednak nie jest uwzględnione w wynikach zapytania, ponieważ nie jest zawarte w instrukcji SELECT. Aby uwzględnić pole sprzężone, umieść nazwę tego pola w instrukcji SELECT — w tym przypadku Categories.CategoryID.

Możesz też połączyć kilka klauzul ON w instrukcji JOIN, stosując następującą składnię:

SELECT , pola
FROM tabela1 INNER JOIN table2
ON tabela1. pole1compoprtable2. pole1 ORAZ
ON tabela1. pole2compoprtable2. pole2) LUB
ON tabela1. pole3compoprtable2. pole3)];

Ponadto możesz zagnieździć instrukcje JOIN za pomocą poniższej składni:

SELECT , pola
FROM Tabela1 INNER JOIN
(tabela2 INNER JOIN [( ]tabela3
[INNER JOIN [( ]tablex [INNER JOIN ...)]
NA tabeli3. pole3compoprtablex. polex)]
ON tabela2. pole2compoprtable3. pole3)
ON tabela1. pole1compoprtable2. pole2;

Operacja LEFT JOIN lub RIGHT JOIN może być zagnieżdżona w operacji INNER JOIN, ale operacja INNER JOIN nie może być zagnieżdżona w operacji LEFT JOIN ani w operacji RIGHT JOIN.