Имя: Пароль:
1C
 
Как сделать внутреннее соединение с пустой таблицей?
0 RomaH
 
naïve
25.06.21
07:57
Если правая таблица пустая - то левую вывести всю
а вот если есть записи в правой - то нужно левое соединение

В запросе такое условие как написать?

Суть - если для выполнения работы необходимо оборудование - то надо искать свободное оборудование, если оборудования не требуется - то - не надо

ВЫБРАТЬ
    МестаРаботыСпециалистов.Специалист КАК Специалист,
    МестаРаботыСпециалистов.МестоРаботы КАК МестоРаботы,
    МестаРаботыСпециалистов.НачалоРаботы КАК НачалоРаботы,
    МестаРаботыСпециалистов.ОкончаниеРаботы КАК ОкончаниеРаботы
ИЗ
    втСпециалисты КАК втСпециалисты
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.МестаРаботыСпециалистов КАК МестаРаботыСпециалистов
        ПО втСпециалисты.Специалист = МестаРаботыСпециалистов.Специалист
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ втОборудование КАК втОборудование //Как вытащить в условие пустая таблица или нет?
        ПО (втОборудование.Оборудование = МестаРаботыСпециалистов.МестоРаботы)
1 Почему 1С
 
25.06.21
08:14
Всегда левое соединение
2 Ёпрст
 
гуру
25.06.21
11:10
(0)
На вот тебе, exists в 1с. Поиграйся с top в первом запросе.


ВЫБРАТЬ ПЕРВЫЕ 0
    Номенклатура.Ссылка КАК Ссылка
ПОМЕСТИТЬ Табличка
ИЗ
    Справочник.Номенклатура КАК Номенклатура
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ ПЕРВЫЕ 10
    Номенклатура.Ссылка КАК Ссылка
ИЗ
    Справочник.Номенклатура КАК Номенклатура
ГДЕ
    ВЫБОР
            КОГДА ИСТИНА В
                    (ВЫБРАТЬ
                        ИСТИНА
                    ИЗ
                        Табличка)
                ТОГДА Номенклатура.Ссылка В
                        (ВЫБРАТЬ
                            Табличка.Ссылка
                        ИЗ
                            Табличка)
            ИНАЧЕ ИСТИНА
        КОНЕЦ
3 Ёпрст
 
гуру
25.06.21
11:11
+2 при нуле будут все записи, иначе, фильтр на записи из таблички
4 Ёпрст
 
гуру
25.06.21
11:13
ну и у тебя

внутреннее выкини и воткни так:


ГДе
    ВЫБОР
            КОГДА ИСТИНА В
                    (ВЫБРАТЬ
                        ИСТИНА
                    ИЗ
                        втОборудование)
                ТОГДА МестаРаботыСпециалистов.МестоРаботы В
                        (ВЫБРАТЬ
                            втОборудование.Оборудование
                        ИЗ
                            втОборудование)
            ИНАЧЕ ИСТИНА
        КОНЕЦ
5 Mort
 
25.06.21
11:15
Или так:

ТАБ1 ВНУТРЕННЕЕ СОЕДИНЕНИЕ ТАБ2

ОБЪЕДИНИТЬ

ТАБ1 ГДЕ Истина В (ВЫБРАТЬ ПЕРВЫЕ 1 Истина ИЗ Таб2)
6 Mort
 
25.06.21
11:15
* ГДЕ НЕ Истина...