Вложенный запрос в где 1с

от admin

Вложенный запрос в где 1с

Вложенные запросы обязательно должны быть в скобках и иметь псевдоним.

Обычно лучше 1 большой запрос с вложенными, чем последовательность запросов из модуля.

Некоторые задачи без вложенных запросов решить языком запросов невозможно.
При разработке вложенных запросов полезно иерархическое дерево Консоли запросов. Каждая вложенная ветка – это вложенный запрос. Корень (или начало ветвления) – это весь запрос.

Конструктор запросов понимает вложенные запросы. При щелчке по пиктограмме редактирования, расположенной над выбранными таблицами, когда курсор расположен на таблице-источнике (вложенном запросе) запускается еще один конструктор запросов.

Вложенный запрос видит только себя, он не видит внешний запрос.
Варианты решения (зависят от конкретной задачи):
• Использовать разыменование ссылочных полей. Например, делать запрос к регистру в котором есть измерение Номенклатура и от поля Номенклатура через точку обращаться к другим таблицам.
• Для построения вложенных запросов, связанных с внешним, т.е. вложенный запрос должен выполниться для каждой строки внешнего запроса, нужно сделать левое внешнее соединение и сделать весь этот запрос вложенным.

Запросы 1С:Предприятие 8. Вложенные запросы

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

Вложенный запрос видит только себя, он не видит внешний запрос. Это значит, что нельзя, например, установить во вложенном запросе условие по значению поля внешнего запроса.

Большинство представленных запросов не имеют какой-либо ценности и могли бы быть выполнены проще. Они приведены только для иллюстрации механизма вложенных запросов.

Читать:
Как в aimp слушать радио

Вложенные запросы могут использоваться в конструкции ИЗ:

В том числе в соединениях:

И в условиях запроса со сравнением В или В ИЕРАРХИИ:

При этом количество выбираемых полей вложенного запроса должно соответствовать количеству операндов в левой части выражения В или В ИЕРАРХИИ.

Существует мнение, что вложенные запросы в сложных конструкциях выполняются платформой 1С нерационально, требуют бОльших ресурсов и времени, нежели те же самые запросы, выполненные иначе, без использования вложенных запросов. Однако в ряде случаев, обойтись без вложенных запросов невозможно.

Вместе с тем, обычно эффективнее работает один большой запрос с вложенными, чем последовательность запросов из модуля.

Практически всегда альтернативой вложенному запросу является использование временных таблиц. Этот инструмент имеет ряд преимуществ:

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

Подведем итог: вложенные запросы лучше всего применять в достаточно простых конструкциях, при этом использовать их стоит только тогда, когда по-другому задачу не решить; в сложных запросах лучше использовать временные таблицы.

Запросы 1С:Предприятие 8. Вложенные запросы : 1 комментарий

При соединении подзапроса с другой таблицей на уровне СУБД всегда будет использоваться способ соединения nested loops, т.к для подзапроса нет статистики. Хорошо это или плохо — зависит от самого запроса и количества выбираемых данных. Именно поэтому при выполнении запроса, содержащего подзапрос, может проявляться замедление.

Похожие статьи