Запрос. Левое соединение первые 1

1. Zixxx 25.02.21 19:45 Сейчас в теме
Как-то можно в левом соединении выбрать только первую связь?

На примере этого, когда коды из источника задублированы
|		ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
	|			МАКСИМУМ(Партнеры.Ссылка) КАК Ссылка,
	|			Партнеры.ИсточникКод КАК ИсточникКод
	|		ИЗ
	|			Справочник.Партнеры КАК Партнеры
	|		
	|		СГРУППИРОВАТЬ ПО
	|			Партнеры.ИсточникКод) КАК Партнеры


Но в результате такого левого соединения все равно добавляются две записи.
Есть какие-то варианты без использования временных таблиц?
i.miheev; KilloN; +2 Ответить
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. Sergex 58 25.02.21 21:07 Сейчас в теме
(1) Вы функцию максимум перенесите в правую часть запроса. в тот к которому делаете левое соединение. Тогда взлетит. Или выбирайте в основном запросе "различные" если в результате дублирования строки результата идентичны.
6. ixijixi 1801 25.02.21 23:02 Сейчас в теме
(1)
можно в левом соединении выбрать только первую связь?
Нельзя просто взять и убрать. Соединение на то и левое, что из левой таблицы попадут все записи, а из правой - все записи, подпадающие под условие связи. Наша задача - правильно описать связь.
2. Zixxx 25.02.21 20:06 Сейчас в теме
Да и использование подзапроса в левом соединении это конечно не вариант
4. EVKash 14 25.02.21 21:35 Сейчас в теме
(1) дальше по 2м полям соединяете? если только по коду, то так и будет.
5. biimmap 1864 25.02.21 21:46 Сейчас в теме
Коллеги извиняюсь конечно... но как Вам такая чушь то приходит на ум?
Вложенные запросы уже лет 200 никто не использует.

Вам нужно вынести вложенный запрос во временную таблицу.
Функция МАКСИМУМ примененная к ссылке вообще никакого смысла не имеет. т.е. ничего не произойдёт.

Если нужно убрать дубли то во временной таблице нужно ВЫБРАТЬ РАЗЛИЧНЫЕ.
Ну и собственно чтоб Вам помогли надо нормально задачу описать.
KonecEsli; retr0; +2 1 Ответить
15. Zixxx 27.02.21 09:12 Сейчас в теме
(5) Каким образом Выбрать различные уберут дубли по ссылкам? Они выберут эти же самые дубли. По поводу вложенных запросов я написал что в примере не лучший вариант. В итоге касаемо вопроса есть что предложить конкретное или нет?
MrFlanker; +1 Ответить
7. andy_zhav 197 26.02.21 08:33 Сейчас в теме
(5) Ошибаетесь, коллега. Не всегда целесообразно использовать временные таблицы. Временные таблица - это увеличенный расход памяти, особенно критично при помещении во временную таблицу больших таблиц. А соответственно уменьшение производительности, увеличенное время выполнения тяжелых запросов. Временные таблицы можно использовать, но не без меры. В случае тяжелых запросов иногда целесообразнее использовать вложенные запросы
9. biimmap 1864 26.02.21 10:32 Сейчас в теме
(7) Я не ошибаюсь, а соблюдаю стандарты разработки. И Вам советую их изучить. Конкретно на эту тему вот стандарт:
https://its.1c.ru/db/v8std/content/655/hdoc.
MrFlanker; +1 1 Ответить
8. sivin-alexey 507 26.02.21 09:16 Сейчас в теме
В этом подзапросе колонка ИсточникКод имеет только уникальные значения. Задваиваются записи или из-за условия ПО, или из-за другого соединения. Приведите полный тест запроса.
16. Zixxx 27.02.21 09:16 Сейчас в теме
(8) Источник код, не всегда может быть уникальным, например в случаях дублирования и других ошибок.
17. sivin-alexey 507 27.02.21 09:20 Сейчас в теме
(16) После группировки по "ИсточникКод" - в подзапросе только уникальные значения
18. Zixxx 27.02.21 09:23 Сейчас в теме
(17) Ну получается что в 1с никак это не сделать. В sql вроде есть для этого limit
10. andy_zhav 197 26.02.21 10:39 Сейчас в теме
(9) Я знаю стандарты разработки, специалиста по платформе получил. Про временные таблицы информацию не сам придумал, а подчерпнул на курсах подготовки к 1с: Эксперт. то что на ИТС описаны данные рекомендации преподаватель и автор курса упомянул также. Я не призывал отказываться от временных таблиц, а более обдуманно подходить к их использованию.

И, кстати, в указанной вами статье рекомендации про соединение вложенных запросов с виртуальными таблицами. то что это плохо - бесспорно, но не относится к теме нашего с вами спора
BomjBandit; +1 Ответить
11. biimmap 1864 26.02.21 10:47 Сейчас в теме
(10) Андрей, у меня нет интереса ни с кем спорить. Убеждать кого-либо также не испытываю интереса. К сожалению качество курсов сейчас крайне низкое! Если работая в Мск будете использовать вложенные запросы, у Вас явно будут трудности. Успехов.
MrFlanker; qu_bert; +2 Ответить
12. andy_zhav 197 26.02.21 10:50 Сейчас в теме
(11) Я передам Виктору Богачеву, что его курсы низкого качества :-)

PS, В рейтинге экспертов 1с он на первом месте
https://v8.1c.ru/tekhnologii/tekhnologii-krupnykh-vnedreniy/tsentry-korporativnoy-tekhnologicheskoy-podderzhki-tsktp/reyting-1c-ekspertov/
13. biimmap 1864 26.02.21 11:25 Сейчас в теме
Хорошо давай аргументированно.
1. Вам на курсах говорили, что во вложенных запросах не должно быть больших физических таблиц?
2. Вам там разъяснили, что если во вложенном запросе более 1000 строк (даже если это временная таблица), то стоит отказаться от использования вложенного запроса?
3. Да если таблица маленькая и используется 1 раз в текущем запросе, то помещать её во временную нет смысла. Ибо уйдёт врем сначала а её помещение в память, потом на чтение и собственно удалить её тоже надо время.

Мне всё равно кто в каком рейтинге на каком месте. Если вдруг он не рассказал на своём курсе написанное, то курс низкого качества.
Все эти рейтинги это просто рекламная лапша, на которую к сожалению до сих пор ведутся. Ко мне после вот таких курсов пачками идут люди на индивидуальное обучение и они не знают даже в чём разница между иерархией групп и иерархией элементов, не понимают почему флаг ЭтоГруппа недоступен во втором случае.
И Вам рекомендую не обращать на это внимания.
Дальше писать не будут в эту ветку. Успехов.
14. andy_zhav 197 26.02.21 11:47 Сейчас в теме
(13)
1. Не было такой информации. Интересно, откуда у вас она. Речь на курсах шла о производительности в высоконагруженных системах и запросах в миллионы строк.
2. опять же, в запросах к небольшому количеству данных (до 5000 тыс строк) вы не особо увидите прирост в производительности, но при использовании временных таблиц вы еще увеличите расход физических ресурсов сервера, что в высоконагруженных системах может быть достаточно критично
3. согласен
4. Советую вам тоже пройти данный курс, потому как это даст возможность взглянуть на 1с с другой стороны. До этих курсов я бы с вами согласился на 100% - не реклама, а лишь собственное мнение.

По поводу рекламной лапши - рейтинг составляется по количеству внедренных крупных проектов. Крупные - это системы с одновременной работой более 1000 человек в одной базе.

Действительно, эта ветка не лучшее место. Было бы логичнее создать новую тему.

PS. На такие курсы люди, не знающие разницу между иерархией групп и иерархией элементов не ходят :-) Удачи
19. XelOla 17 07.12.21 22:31 Сейчас в теме
(14) ребята, чем все закончилось:?
как отобрать Номенклатуру и Остатки поставщика из спр НомеклатураПоставщиков, нужно в Динамическом списке ФормаСписка Номенклатура отразить Остатки поставщика
20. Maden 30.03.23 16:39 Сейчас в теме
(19)Поместить остатки во врем. таблицу. И после этого сделать к ней левое соединение.
21. dima_home 239 31.08.23 12:45 Сейчас в теме
Пример когда нужно в списке/журнале документов показать наличие подчиненных документов

ВЫБРАТЬ РАЗЛИЧНЫЕ
	ДокументИТ_ЗаявкаНаТранспортировку.Ссылка КАК Ссылка,
	МАКСИМУМ(ЕСТЬNULL(ИТ_ТранспортировкаМаршруты.Ссылка.Проведен, ЛОЖЬ)) КАК ЕстьТранспортировка
ИЗ
	Документ.ИТ_ЗаявкаНаТранспортировку КАК ДокументИТ_ЗаявкаНаТранспортировку
		ЛЕВОЕ СОЕДИНЕНИЕ Документ.ИТ_Транспортировка.Маршруты КАК ИТ_ТранспортировкаМаршруты
		ПО ДокументИТ_ЗаявкаНаТранспортировку.Ссылка = ИТ_ТранспортировкаМаршруты.ДокументЗаявки

СГРУППИРОВАТЬ ПО
	ДокументИТ_ЗаявкаНаТранспортировку.Ссылка,
Показать
Оставьте свое сообщение

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