|
Левое соединение в запросе | ☑ | ||
---|---|---|---|---|
0
6elka1703
02.04.20
✎
19:24
|
Добрый вечер, есть вопрос про левое соединение. Правильно ли я понимаю что левое соединение берет все записи из левой таблицы и записи из правой которые соответствуют условиям, и если записей в правой таблице нет то прилет null?
Если так, то я не совсем понимаю, в запросе делаю левое соединение, в левой таблице 2 записи, в правой таблице по условию подходит только одна, в результате должно быть 1 запись из левой + null и 2 запись из левой + значение из правой. Но по факту остается одна запись для которой было значение из правой таблицы. Как так? |
|||
1
rsv
02.04.20
✎
19:36
|
не бывает чудес при левом все записи приедут из левой или больше если в правой значений соодинения больше одного
|
|||
2
PR
02.04.20
✎
19:37
|
Главное, ни в коем случае не пиши сюда текст запроса!
|
|||
3
rsv
02.04.20
✎
19:39
|
возможно путаете лефт с иннер или забыли что еще в запросе гдето есть were
|
|||
4
Sserj
02.04.20
✎
19:41
|
(0) Нельзя при левом соединении накладывать условия на правую таблицу. Точнее накладывать то можно но соединение тогда автоматически станет внутренним.
|
|||
5
ДенисЧ
02.04.20
✎
19:50
|
Никогда не показывай свой текст запроса! Это дурная примета, 7 лет секс будет...
|
|||
6
6elka1703
02.04.20
✎
19:56
|
Да забыл я код скинуть)
|
|||
7
6elka1703
02.04.20
✎
19:56
|
ВЫБРАТЬ
ЗапасыНоменклатураПродукцияОстатки.Заказ КАК Заказ, МАКСИМУМ(ЗапасыНоменклатураПродукцияОстатки.Заказ.Контрагент) КАК Контрагент, ЗапасыНоменклатураПродукцияОстатки.НоменклатураПродукция КАК Номенклатура, ЗапасыНоменклатураПродукцияОстатки.Цвет КАК Цвет, МАКСИМУМ(ЗапасыНоменклатураПродукцияОстатки.КЗаказуОстаток) КАК КЗаказу, МАКСИМУМ(ЗапасыНоменклатураПродукцияОстатки.ЗаказаноОстаток) КАК Заказано, СУММА(ЕСТЬNULL(ЗапасыНоменклатураПродукцияОборотыВыпускНоменклатуры.РезервОборот, 0)) КАК КоличествоВыпущеннойНоменклатуры {ВЫБРАТЬ Заказ.*, Контрагент.*, Номенклатура.*, Цвет.*, КЗаказу, Заказано, КоличествоВыпущеннойНоменклатуры} ИЗ РегистрНакопления.ЗапасыНоменклатураПродукция.Остатки( &КонецПериода, Заказ <> ЗНАЧЕНИЕ(Документ.Заказ.ПустаяСсылка) И НоменклатураПродукция ССЫЛКА Справочник.Номенклатура) КАК ЗапасыНоменклатураПродукцияОстатки ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ЗапасыНоменклатураПродукция.Обороты( &НачалоПериода, &КонецПериода, Регистратор, Заказ <> ЗНАЧЕНИЕ(Документ.Заказ.ПустаяСсылка) И НоменклатураПродукция ССЫЛКА Справочник.Номенклатура) КАК ЗапасыНоменклатураПродукцияОборотыВыпускНоменклатуры ПО ЗапасыНоменклатураПродукцияОстатки.Заказ = ЗапасыНоменклатураПродукцияОборотыВыпускНоменклатуры.Заказ И ЗапасыНоменклатураПродукцияОстатки.НоменклатураПродукция = ЗапасыНоменклатураПродукцияОборотыВыпускНоменклатуры.НоменклатураПродукция И ЗапасыНоменклатураПродукцияОстатки.Цвет = ЗапасыНоменклатураПродукцияОборотыВыпускНоменклатуры.Цвет ГДЕ ЗапасыНоменклатураПродукцияОборотыВыпускНоменклатуры.Регистратор ССЫЛКА Документ.ВыпускНоменклатуры {ГДЕ ЗапасыНоменклатураПродукцияОстатки.Заказ.*, ЗапасыНоменклатураПродукцияОстатки.Заказ.Контрагент.* КАК Контрагент, ЗапасыНоменклатураПродукцияОстатки.НоменклатураПродукция.* КАК Номенклатура, ЗапасыНоменклатураПродукцияОстатки.Цвет.*} СГРУППИРОВАТЬ ПО ЗапасыНоменклатураПродукцияОстатки.Заказ, ЗапасыНоменклатураПродукцияОстатки.НоменклатураПродукция, ЗапасыНоменклатураПродукцияОстатки.Цвет |
|||
8
Cyberhawk
02.04.20
✎
19:59
|
(7) У тебя в ГДЕ условие на правую таблицу. Забудь про левое соединение.
|
|||
9
6elka1703
02.04.20
✎
19:59
|
(4) вот дурак, чет забыл про это
|
|||
10
6elka1703
02.04.20
✎
19:59
|
спасибо, чего то я ступил жестко
|
|||
11
Sserj
02.04.20
✎
20:34
|
(8)(9) Вообще то можно и не забывать про левое соединение :)
Оно не становится на самом деле внутренним, просто при проверке условия попадет NULL который всегда на выходе дает false. Но если очень нужно то можно схитрить: ГДЕ ЕСТЬNULL(ЗапасыНоменклатураПродукцияОборотыВыпускНоменклатуры.Регистратор, Документ.ВыпускНоменклатуры) = Документ.ВыпускНоменклатуры |
|||
12
Ненавижу 1С
гуру
02.04.20
✎
21:00
|
(11) мне кажется это не скомпилируется в запрос
|
|||
13
Ненавижу 1С
гуру
02.04.20
✎
21:24
|
ГДЕ
ЕСТЬNULL(ЗапасыНоменклатураПродукцияОборотыВыпускНоменклатуры.Регистратор ССЫЛКА Документ.ВыпускНоменклатуры, ИСТИНА) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |