|
не работает левое соединение в запросе |
☑ |
0
FFrr1C
15.12.22
✎
13:43
|
Не пойсу почему работает по принципу левого соединения, а работает по принципу полного запрос
ВЫБРАТЬ РАЗЛИЧНЫЕ
ПоручениеЭкспедиторуОснования.Основание КАК РТУ_Ссылка,
ПоручениеЭкспедиторуОснования.Ссылка КАК Поруч_Ссылка
ПОМЕСТИТЬ ВР_РТУ
ИЗ
Документ.ПоручениеЭкспедитору.Основания КАК ПоручениеЭкспедиторуОснования
ГДЕ
ПоручениеЭкспедиторуОснования.Ссылка = &Ссылка
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ВР_РТУ.РТУ_Ссылка КАК РТУ,
УведомлениеОбОтгрузкеМДЛП.Ссылка КАК УВ_Ссылка
ИЗ
ВР_РТУ КАК ВР_РТУ
ЛЕВОЕ СОЕДИНЕНИЕ Документ.УведомлениеОбОтгрузкеМДЛП КАК УведомлениеОбОтгрузкеМДЛП
ПО ВР_РТУ.РТУ_Ссылка = УведомлениеОбОтгрузкеМДЛП.Основание.Ссылка
ГДЕ
НЕ УведомлениеОбОтгрузкеМДЛП.ПометкаУдаления
Есть 2 реализации(РТУ) в Поручении; на основании одной РТУ - МДЛП есть, на основании другой - нет, соединяем левым РТУ с МДЛП, получаем результат с одной строкой, вторую ссылку РТУ, которая без МДЛП не выводит, а соединение левое стоит!
|
|
1
FFrr1C
15.12.22
✎
13:45
|
когда уже редактировать здесь разрешат)) *..по принципу внутреннего" рабоатет
|
|
2
1Сергей
15.12.22
✎
13:45
|
Вот это:
ГДЕ
НЕ УведомлениеОбОтгрузкеМДЛП.ПометкаУдаления
превращает левое соединение во внутреннее
|
|
3
FFrr1C
15.12.22
✎
13:46
|
Опа! а это по какому принципу? можно поподробнее если не сложно?
|
|
4
НафНаф
15.12.22
✎
13:49
|
(3) вся разница между внутренним и левым соединением как раз в том, что УведомлениеОбОтгрузкеМДЛП.ПометкаУдаления может быть NULL (в случае левого)
но наложив условие:
ГДЕ
НЕ УведомлениеОбОтгрузкеМДЛП.ПометкаУдаления
вы исключили эту разницу - условие с NULL не выполнится
|
|
5
FFrr1C
15.12.22
✎
13:50
|
Спасибо! понятно.
|
|
6
Chameleon1980
15.12.22
✎
23:25
|
условие на правую таблицу нужно писать в соединении
|
|
7
ДедМорроз
16.12.22
✎
11:34
|
Если написать ПометкаУдаления <> Истина
Тогда будет работать,как хотели
К сожалению НЕ NULL = NULL
|
|
8
НафНаф
16.12.22
✎
11:43
|
(7) смотря куда написать, в условие ГДЕ - не поможет
|
|
9
1Сергей
16.12.22
✎
11:44
|
(8) +1
|
|
10
lubitelxml
16.12.22
✎
11:52
|
Правильно будет вот так:
ВЫБРАТЬ
ВР_РТУ.РТУ_Ссылка КАК РТУ,
УведомлениеОбОтгрузкеМДЛП.Ссылка КАК УВ_Ссылка
ИЗ
ВР_РТУ КАК ВР_РТУ
ЛЕВОЕ СОЕДИНЕНИЕ Документ.УведомлениеОбОтгрузкеМДЛП КАК УведомлениеОбОтгрузкеМДЛП
ПО ВР_РТУ.РТУ_Ссылка = УведомлениеОбОтгрузкеМДЛП.Основание.Ссылка
И НЕ УведомлениеОбОтгрузкеМДЛП.ПометкаУдаления
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший