Объединяет записи из двух таблиц, если в связующих полях этих таблиц содержатся одинаковые значения.
Синтаксис
FROM таблица1 INNER JOIN таблица2 ON таблица1.поле1оператор_сравнения таблица2.поле2
Операция INNER JOIN состоит из следующих элементов:
Часть |
Описание |
таблица1, таблица2 |
Имена таблиц, содержащих объединяемые записи. |
поле1, поле2 |
Имена объединенных полей. Если они не являются числовыми, поля должны иметь один и тот же тип данных и содержать данные одного типа, но они не должны иметь одно и то же имя. |
compopr |
Любой оператор сравнения: (=, <, >, <=, >= или <>) |
Замечания
Операцию INNER JOIN можно использовать в любом предложении FROM. Это самый распространенный тип объединения. С его помощью происходит объединение записей из двух таблиц по связующему полю, если оно содержит одинаковые значения в обеих таблицах.
При работе с таблицами "Отделы" и "Сотрудники" операцией INNER JOIN можно воспользоваться для выбора всех сотрудников в каждом отделе. Если же требуется выбрать все отделы (включая те из них, в которых нет сотрудников) или всех сотрудников (в том числе и не закрепленных за отделом), можно при помощи операции LEFT JOIN или RIGHT JOIN создать внешнее соединение.
При попытке связи полей, содержащих данные типа Memo или объекты OLE, возникнет ошибка.
Можно объединить любые два числовых поля типа типа . Например, можно объединить поля AutoNumber и Long, так как они похожи на типы. Однако нельзя объединять типы полей Single и Double.
В следующем примере показано, как можно объединить таблицы Categories и Products по полю CategoryID.
SELECT CategoryName, ProductName
FROM Categories INNER JOIN Products ON Categories.CategoryID = Products.CategoryID;
В предыдущем примере CategoryID является объединенным полем, но не включается в выходные данные запроса, так как он не включен в инструкцию SELECT. Чтобы включить присоединенное поле, добавьте имя поля в инструкцию SELECT— в этом случае Categories.CategoryID.
В инструкции JOIN можно также связать несколько предложений ON, используя следующий синтаксис:
SELECT поля
FROM таблица1 INNER JOIN таблица2 ON таблица1.таблица1оператор_сравнениятаблица2.поле1 AND ON таблица1.поле2оператор_сравнениятаблица2.поле2) OR ON таблица1.поле3оператор_сравнениятаблица2.поле3)];Ниже приведен пример синтаксиса, с помощью которого можно составлять вложенные инструкции JOIN.
SELECT поля
FROM таблица1 INNER JOIN (таблица2 INNER JOIN [( ]таблица3 [INNER JOIN [( ]таблицаx [INNER JOIN ...)] ON таблица3.поле3оператор_сравнениятаблицаx.полеx)] ON таблица2.поле2оператор_сравнениятаблица3.поле3) ON таблица1.поле1оператор_сравнениятаблица2.поле2;Операции LEFT JOIN и RIGHT JOIN могут быть вложены в операцию INNER JOIN, но операция INNER JOIN не может быть вложена в операцию LEFT JOIN или RIGHT JOIN.