Объединяет записи из двух таблиц, если в связующих полях этих таблиц содержатся одинаковые значения.
Синтаксис
FROM таблица1 INNER JOIN таблица2 ON таблица1.поле1 оператор_сравнения таблица2.поле2
Операция INNER JOIN состоит из следующих элементов:
| Элемент | Описание |
|---|---|
| таблица1, таблица2 | Имена таблиц, содержащих объединяемые записи |
| поле1, поле2 | Имена связываемых полей. Поля, не являющиеся числовыми, должны относиться к одному типу данных (Тип данных. Характеристика поля, определяющая тип данных, который может содержать это поле. Существуют следующие типы данных: Boolean, Integer, Long, Currency, Single, Double, Date, String и Variant (по умолчанию).) и содержать данные одного вида. Однако имена этих полей могут быть разными |
| оператор_сравнения | Любой оператор сравнения: (=, <, >, <=, >= или <>) |
Замечания
Операцию INNER JOIN можно использовать в любом предложении FROM. Это самый распространенный тип объединения. С его помощью осуществляется объединение записей из двух таблиц по связующему полю, если оно содержит одинаковые значения в обеих таблицах.
В следующем примере показано, как можно объединить таблицы «Категории» и «Товары» по полю «ИДКатегории».
SELECT ИмяКатегории, Наименование FROM Категории INNER JOIN Товары ON Категории.ИДКатегории = Товары.ИДКатегории;В предыдущем примере «ИДКатегории» является связующим полем, но оно не включено в результат запроса, поскольку оно не указано в инструкции SELECT. Чтобы включить связующее поле в результат запроса, укажите имя поля в инструкции SELECT: в данном случае это Категории.ИДКатегории.
В инструкции 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.
0 коммент.:
Отправить комментарий