Спецификации соединений
страницаПри определении нескольких источников в списке источников для каждой записи из первой таблицы-источника осуществляется выборка из второй таблицы-источника, и т. д. Таким образом, в результате запроса формируются все возможные комбинации всех записей из всех указанных источников.
Пример:
ВЫБРАТЬ
Контрагенты.Ссылка КАК Контрагент,
Банки.Ссылка КАК БанкИЗ
Справочник.Контрагенты КАК Контрагенты,
Справочник.Банки КАк Банки
Результат запроса:
|
Контрагент |
Банк |
|
Поставщики |
АКБ ИвестБанк |
|
Поставщики |
АКБ ПромСтройБанк |
|
Трикотажная фабрика "Заря" |
АКБ ИвестБанк |
|
Трикотажная фабрика "Заря" |
АКБ ПромСтройБанк |
|
Фабрика джинсовой одежды |
АКБ ИвестБанк |
|
Фабрика джинсовой одежды |
АКБ ПромСтройБанк |
|
Покупатели |
АКБ ИвестБанк |
|
Покупатели |
АКБ ПромСтройБанк |
|
Ярмарка одежды |
АКБ ИвестБанк |
|
Ярмарка одежды |
АКБ ПромСтройБанк |
|
Торговый дом "Буденовский" |
АКБ ИвестБанк |
|
Торговый дом "Буденовский" |
АКБ ПромСтройБанк |
|
Павильон 45 на оптовом рынке |
АКБ ИвестБанк |
|
Павильон 45 на оптовом рынке |
АКБ ПромСтройБанк |
|
Бавария – фарфор |
АКБ ИвестБанк |
|
Бавария – фарфор |
АКБ ПромСтройБанк |
|
Фабрика джинсовой одежды |
АКБ ИвестБанк |
|
Фабрика джинсовой одежды |
АКБ ПромСтройБанк |
|
АКБ ПромСтройБанк |
АКБ ИвестБанк |
|
АКБ ПромСтройБанк |
АКБ ПромСтройБанк |
Результат запроса содержит комбинации всех контрагентов со всеми банками. Как правило, такой результат сам по себе смысла не имеет. Обычно комбинации записей из разных исходных таблиц требуется ограничить какими-либо условиями. В языке запросов имеется возможность описать такое соединение источников, указывая сами источники и определяя условия, в соответствии с которыми комбинации записей из этих источников требуется включить в результат запроса.
Соединения бывают нескольких видов; они описываются следующими правилами:
**
| <Перечень соединений> | |||
| | | |||
| <Соединение> [<Перечень соединений>] | |||
| | | |||
| [ВНУТРЕННЕЕ] СОЕДИНЕНИЕ <Описание источника> ПО <Условие отбора> | ЛЕВОЕ [ВНЕШНЕЕ] СОЕДИНЕНИЕ <Описание источника> ПО <Условие отбора> | ПРАВОЕ [ВНЕШНЕЕ] СОЕДИНЕНИЕ <Описание источника> ПО <Условие отбора> | ПОЛНОЕ [ВНЕШНЕЕ] СОЕДИНЕНИЕ <Описание источника> ПО <Условие отбора> | |||
**
В общем случае <Перечень соединений> может содержать и описывать не только одно соединение (двух источников), но и несколько соединений нескольких источников сразу.
<Описание источника> содержит описание исходной таблицы.
<Условие отбора> содержит условия, в соответствии с которыми в выборке необходимо соединить данные из исходных таблиц – источников запроса.
Ключевые слова ЛЕВОЕ, ПРАВОЕ и ПОЛНОЕ уточняют характер соединения. Слова ВНУТРЕННЕЕ или ВНЕШНЕЕ можно не указывать вообще, они повышают наглядность и удобочитаемость текста запроса.
Соединяемые источники не равнозначны между собой, и в некоторых случаях результат зависит от того, какая таблица указана первой, до ключевого слова СОЕДИНЕНИЕ (слева от него), а какая – второй (справа).