Łą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. pole1komputer 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ą liczbowe, pola muszą mieć ten sam typ danych i zawierać ten sam rodzaj danych, ale nie muszą mieć takiej samej nazwy. |
| operator_porównania | Każdy operator porównania relacyjnego: "=", "", "<", "<>=", ">=" 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 aby wybrać wszystkie działy (nawet jeśli niektórzy nie mają przypisanych do nich pracowników) lub wszystkich pracowników (nawet jeśli niektórzy nie są przypisani do 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 dołączyć pole sprzężone, dołącz nazwę pola do 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 tabela2
ON tabela1. pole1compoprtable2. pole1 I
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 ...)]
ON tabela3. 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.