Левое соединение с несколькими измерениями

1. user1909662 23.01.25 10:02 Сейчас в теме
Регистр сведений имеет 2 измерения (Справочник1 и Измерение1).

С таким запросом (1 условие соединения):

ВЫБРАТЬ
	Справ1.Ссылка КАК Ссылка,
	РегистрСведений1.Цена КАК Цена, //тип число
	РегистрСведений1.Измерение1 КАК Измерение1 //тип строка
ИЗ
	Справочник.Справочник1 КАК Справ1
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РегистрСведений1 КАК РегистрСведений1
		ПО Справ1.Ссылка = РегистрСведений1.Справочник1 
		//И Справ1.Реквизит1 = РегистрСведений1.Измерение1
//ГДЕ РегистрСведений1.Цена <> 0
Показать


получаем такой результат (скрин 1)

С таким запросом (2 условия соединения):

ВЫБРАТЬ
	Справ1.Ссылка КАК Ссылка,
	РегистрСведений1.Цена КАК Цена, //тип число
	РегистрСведений1.Измерение1 КАК Измерение1 //тип строка
ИЗ
	Справочник.Справочник1 КАК Справ1
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РегистрСведений1 КАК РегистрСведений1
		ПО Справ1.Ссылка = РегистрСведений1.Справочник1 
		И Справ1.Реквизит1 = РегистрСведений1.Измерение1
//ГДЕ РегистрСведений1.Цена <> 0
Показать


такой результат (скрин 2)

Если указать несколько условий соединения, то они группируются? (в первом запросе "Первый" имел 2 строки, а во втором только одну и с пустыми колонками "Цена" и "Измерение1")
Прикрепленные файлы:
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. antz 23.01.25 10:15 Сейчас в теме
(1) Нет, в первом запросе к первому элементу цепляются две записи регистра (т.к. условие только на элемент справочника), во втором к третьему и первому не цепляется ничего (null), а ко второму - запись, для которой удовлетворяются оба условия.
Ну почитайте хоть про реляционные бд.
user1909662; +1 Ответить
3. user1909662 23.01.25 10:25 Сейчас в теме
(2) т.е. если ничего не цепляется, то только запись основной таблицы остается, а если допустим для левого соединения будет соответствовать 10 записей, то будет 10 записей? (основная таблица + результат левого соединения)
4. antz 23.01.25 10:36 Сейчас в теме
(3) Да. Поэтому на форумах возникает много тем "Памагите суммы задваиваются при левом соединении".
user1909662; +1 Ответить
5. spacecraft 23.01.25 10:40 Сейчас в теме
(3) в документации есть. При левом соединении сначала выполняется внутреннее соединение. Потом к результату добавляются данные из первой таблицы не попавшие в отбор ранее.
VyacheslavShilov; user1909662; +2 Ответить
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот