Инструменты пользователя

Инструменты сайта


1c:база:запросы

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
1c:база:запросы [2015/11/22 04:49]
admin мелкие правки
1c:база:запросы [2020/10/01 03:34] (текущий)
admin мелкое оформление
Строка 117: Строка 117:
  
 Перед построением запроса, необходимо четко определить какие данные и из каких таблиц должны попадать в результат запроса. Огромное значение имеет то, как запрос будет связывать между собой данные из нескольких таблиц. Существуют следующие виды соединений: Перед построением запроса, необходимо четко определить какие данные и из каких таблиц должны попадать в результат запроса. Огромное значение имеет то, как запрос будет связывать между собой данные из нескольких таблиц. Существуют следующие виды соединений:
-  * Декартово произведение, или cross join, такое соединение получается  если не указывать какой тип связи нам нужен, система для каждой таблицы создаст набор записей, например если в одной таблице было 7 записей а во второй 12 в результате запроса вы получите 7 * 12 = 84 то есть все комбинации которые можно составить из этих данных. Забыв указать тип соединения и объединив таблицы с несколькими десятками тысяч записей(регистр остатков товара в небольшой базе) можно создать при выполнении запроса и выводе результата серьезную нагрузку на базу. +  * **Декартово произведение**, или cross join, такое соединение получается  если не указывать какой тип связи нам нужен, система для каждой таблицы создаст набор записей, например если в одной таблице было 7 записей а во второй 12 в результате запроса вы получите 7 * 12 = 84 то есть все комбинации которые можно составить из этих данных. Забыв указать тип соединения и объединив таблицы с несколькими десятками тысяч записей(регистр остатков товара в небольшой базе) можно создать при выполнении запроса и выводе результата серьезную нагрузку на базу. 
-  * Внутреннее соединение или inner join(галочка "ВСЕ" не стоит не слева, не справа),  необходимо использовать тогда когда из двух таблиц нужно получить только те данные которые совпадают по условию связи в обоих таблицах. +  * **Внутреннее соединение** или inner join(галочка "ВСЕ" не стоит не слева, не справа),  необходимо использовать тогда когда из двух таблиц нужно получить только те данные которые совпадают по условию связи в обоих таблицах. 
-  * Левое соединение или left inner join (галочка "ВСЕ" стоит слева) – в результат запроса попадают все записи которые находятся в левой таблице, и те записи из правой таблицы которые отвечают условию связи. +  * **Левое соединение** или left inner join (галочка "ВСЕ" стоит слева) – в результат запроса попадают все записи которые находятся в левой таблице, и те записи из правой таблицы которые отвечают условию связи. 
-  * Правое соединение или right inner join тоже самое что и левое соединение, только в результат попадают все записи из таблицы справа(галочка "ВСЕ" стоит справа), следует отметить, что 1С старается придерживаться левого соединения и если вы попробуете настроить правое соединение,  с помощью конструктора, при нажатии на кнопку ОК, она поменяет местами таблицы и сделает левое соединение. +  * **Правое соединение** или right inner join тоже самое что и левое соединение, только в результат попадают все записи из таблицы справа(галочка "ВСЕ" стоит справа), следует отметить, что 1С старается придерживаться левого соединения и если вы попробуете настроить правое соединение,  с помощью конструктора, при нажатии на кнопку ОК, она поменяет местами таблицы и сделает левое соединение. 
-  * Полное соединение или full outer join (галочка "ВСЕ" стоит и слева и справа) в запрос попадут все записи из обоих таблиц, которые 1С попытается сопоставить с помощью условия связи.+  * **Полное соединение** или full outer join (галочка "ВСЕ" стоит и слева и справа) в запрос попадут все записи из обоих таблиц, которые 1С попытается сопоставить с помощью условия связи.
  
 ==== Вложенные запросы ==== ==== Вложенные запросы ====
1c/база/запросы.txt · Последнее изменение: 2020/10/01 03:34 — admin