Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
21 июн 2025, 01:29

Как дублировать строки при левом соединении?

Автор gulnyr, 23 апр 2025, 09:49

0 Пользователей и 1 гость просматривают эту тему.

gulnyr

Есть простой код:

ВЫБРАТЬ
    1 КАК Заголовок1,
    2 КАК Значение1
ПОМЕСТИТЬ ВТ_1
;

////////////////////////////////////////////////////////////�////////////////////
ВЫБРАТЬ
    1 КАК Заголовок2,
    3 КАК Значение2
ПОМЕСТИТЬ ВТ_2
;

////////////////////////////////////////////////////////////�////////////////////
ВЫБРАТЬ
    ВТ_1.Заголовок1,
    ВТ_1.Значение1,
    ВТ_2.Значение2
ИЗ ВТ_1 КАК ВТ_1       
ЛЕВОЕ СОЕДИНЕНИЕ ВТ_2 КАК ВТ_2
ПО ВТ_2.Заголовок2 = ВТ_1.Заголовок1

Результат:

Заголовок1Значение1Значение2
122

Как переделать так, чтобы образовались дубли строк? (чтобы на простом примере понять, из-за чего образуются дубли)

Максим75

gulnyr, здесь никак.
а вот если во второй таблице у Вас будет две записи с заголовком равным 1, но с разными значениями, то будет две записи при соединении.
дубли образовывается тогда, когда в присоединяемой таблице не уникальное значение, по которому идет связь (т.е. с этим значением есть несколько записей в выборке)

antoneus

Что есть "дубли строк"? Полных дублей строк не будет. Могут быть как бы дубли в таком случае

ВЫБРАТЬ
    1 КАК Заголовок1,
    2 КАК Значение1
ПОМЕСТИТЬ ВТ_1

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    1,
    2
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    1 КАК Заголовок2,
    3 КАК Значение2
ПОМЕСТИТЬ ВТ_2

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    1,
    4

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    1,
    6
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВТ_1.Заголовок1 КАК Заголовок1,
    ВТ_1.Значение1 КАК Значение1,
    ВТ_2.Значение2 КАК Значение2
ИЗ
    ВТ_1 КАК ВТ_1
        ЛЕВОЕ СОЕДИНЕНИЕ ВТ_2 КАК ВТ_2
        ПО (ВТ_2.Заголовок2 = ВТ_1.Заголовок1)

Заголовок1Значение1Значение2
123
124
126
123
124
126

Но первая тройка - это соединения первого запроса в объединении, вторая - соединения второго.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск