Соединение таблиц в языке запросов 1с

Заметил на собеседованиях, что многие программисты путаются в соединении таблиц в языке запросов и не всегда точно, а тем более уверенно могут показать результат простого соединения. Сегодня в этой заметки разберем не сложные примеры соединения таблиц в запросах. Надеюсь данная статья поможем раз и навсегда разобраться в этом не сложной задаче, которая используется повсеместно в программировании.

Итак, имеем две таблицы ‘Рыбы’ и ‘ОбитаниеРыб’:

Таблицы для соединения в запросе.
Таблицы для соединения в запросе.

ЛЕВОЕ СОЕДИНЕНИЕ: Данные из ‘левой’ таблицы выбираются в полном объеме, а из присоединяемой таблицы (‘правая’), только те записи, которые удовлетворяют условию соединения.

Пример: с условием ПО (ИСТИНА)

ЛЕВОЕ СОЕДИНЕНИЕ – с условием ПО (ИСТИНА).

Пример: с условием ПО (Рыбы.Наименование = ОбитаниеРыб.Наименование):

  ЛЕВОЕ СОЕДИНЕНИЕ -  с условием ПО (Рыбы.Наименование = ОбитаниеРыб.Наименование).
ЛЕВОЕ СОЕДИНЕНИЕ – с условием ПО (Рыбы.Наименование = ОбитаниеРыб.Наименование).

Пустые значения из правой таблицы – это отсутствующие значения (NUL).

Пример: с двойным условием связи ПО (Рыбы.Наименование = ОбитаниеРыб.Наименование) И Рыбы.ID = ОбитаниеРыб.ID:

 ЛЕВОЕ СОЕДИНЕНИЕ -   с двойным условием связи ПО (Рыбы.Наименование = ОбитаниеРыб.Наименование) И Рыбы.ID = ОбитаниеРыб.ID.
ЛЕВОЕ СОЕДИНЕНИЕ – с двойным условием связи ПО (Рыбы.Наименование = ОбитаниеРыб.Наименование) И Рыбы.ID = ОбитаниеРыб.ID.

ВНУТРЕННЕЕ СОЕДИНЕНИЕ: выводятся только те данные из двух таблиц, которые полностью совпали по условию.

Пример: с условием ПО (ИСТИНА):

   ВНУТРЕННЕЕ  СОЕДИНЕНИЕ - с условием ПО (ИСТИНА).
ВНУТРЕННЕЕ СОЕДИНЕНИЕ – с условием ПО (ИСТИНА).

Пример: с условием ПО (Рыбы.Наименование = ОбитаниеРыб.Наименование):

  ВНУТРЕННЕЕ СОЕДИНЕНИЕ  -  с условием ПО (Рыбы.Наименование = ОбитаниеРыб.Наименование).
ВНУТРЕННЕЕ СОЕДИНЕНИЕ – с условием ПО (Рыбы.Наименование = ОбитаниеРыб.Наименование).

ПРАВОЕ СОЕДИНЕНИЕ: это по сути тоже самое левое соединение, только присоединение будут идти к таблице с права. Если поменять таблицы местами, то получится левое соединение. Конструктор запроса автоматически правое соединение переделает в левое, поменяв таблицы местами. SQL также построит свой запрос через левое соединение.

Пример: с условием ПО (Рыбы.Наименование = ОбитаниеРыб.Наименование):

 ПРАВОЕ СОЕДИНЕНИЕ -  с условием ПО (Рыбы.Наименование = ОбитаниеРыб.Наименование).
ПРАВОЕ СОЕДИНЕНИЕ – с условием ПО (Рыбы.Наименование = ОбитаниеРыб.Наименование).

ПОЛНОЕ СОЕДИНЕНИЕ: выводит записи из двух таблиц при этом соединяя те, которые полностью подошли по условию.

Пример: с условием ПО (Рыбы.Наименование = ОбитаниеРыб.Наименование):

 ПОЛНОЕ СОЕДИНЕНИЕ -  с условием ПО (Рыбы.Наименование = ОбитаниеРыб.Наименование).
ПОЛНОЕ СОЕДИНЕНИЕ – с условием ПО (Рыбы.Наименование = ОбитаниеРыб.Наименование).

Так же в запросе можно сделать и перекрёстное соединение таблиц (не используя закладку ‘связи’):

 Перекрёстное соединение.
Перекрёстное соединение.

Понимание принципа соединения таблиц в 1с поможет вам вытащить из базы данных всю необходимую информацию!

Ну и небольшая подсказка для новичков:

ВНУТРЕННЕЕ соединение.
ВНУТРЕННЕЕ соединение.
 ПОЛНОЕ соединение.
ПОЛНОЕ соединение.
 ЛЕВОЕ соединение.
ЛЕВОЕ соединение.
ПРАВОЕ соединение (перейдет в левое автоматически).
ПРАВОЕ соединение (перейдет в левое автоматически).
7+

Оставить комментарий

Ваш адрес email не будет опубликован.