Объединяют записи исходных таблиц при использовании в любом предложении FROM.
Синтаксис
ИЗ ТАБЛИЦЫ1 [ СЛЕВА | СПРАВА ] СОЕДИНЕНИЕ ТАБЛИЦЫ2
ON таблица1.поле1compopr таблица2.поле2
Операции LEFT JOIN и RIGHT JOIN состоят из следующих элементов:
| Часть | Описание |
|---|---|
| таблица1, таблица2 | Имена таблиц, содержащих объединяемые записи. |
| поле1, поле2 | Имена объединенных полей. Поля должны иметь одинаковый тип данных и содержать одинаковые данные, но не обязательно должны иметь одинаковые имена. |
| compopr | Любой оператор реляционного сравнения: "=", "<," ">," "<=", ">=," или "<>." |
Замечания
Чтобы создать левое внешнее соединение, используйте операцию LEFT JOIN. С помощью левого внешнего соединения выбираются все записи первой (левой) таблицы, даже если они не соответствуют записям во второй (правой) таблице.
Используйте операцию RIGHT JOIN для создания правого внешнего соединения. С помощью правого внешнего соединения выбираются все записи второй (правой) таблицы, даже если они не соответствуют записям в первой (левой) таблице.
Например, в случае с таблицами "Отделы" (левая) и "Сотрудники" (правая) можно воспользоваться операцией LEFT JOIN для выбора всех отделов (включая те, в которых нет сотрудников). Чтобы выбрать всех сотрудников (в том числе и не закрепленных за каким-либо отделом), используйте RIGHT JOIN.
В следующем примере показано, как можно объединить таблицы Categories и Products по полю CategoryID. Результат запроса представляет собой список категорий, включая те, которые не содержат товаров.
SELECT CategoryName, ProductName FROM Categories LEFT JOIN Products ON Categories.CategoryID = Products.CategoryID;
В этом примере поле CategoryID является объединенным, но оно не включается в результаты запроса, так как не включается в инструкцию SELECT. Чтобы включить связанное поле, введите имя поля в инструкцию SELECT — в данном случае Categories.CategoryIDэто .
Чтобы создать запрос, результатом которого являются только те записи, для которых совпадают данные в связующих полях, воспользуйтесь операцией INNER JOIN.
- Операции LEFT JOIN и RIGHT JOIN могут быть вложены в операцию INNER JOIN, но операция INNER JOIN не может быть вложена в операцию LEFT JOIN или RIGHT JOIN. Подробные сведения о вложении объединений можно найти в статье, посвященной операции INNER JOIN.
- Вы можете связать несколько предложений ON. Сведения о связывании предложений см. в статье, посвященной операции INNER JOIN.
При попытке связи полей, содержащих данные типа Memo или объекты OLE, возникнет ошибка.