powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / [игнор отключен] [закрыт для гостей] / Запросы в 1С 8
10 сообщений из 10, страница 1 из 1
Запросы в 1С 8
    #36296060
Timon_a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нужна помощь. Есть две таблицы, необходимо из одной выбрать данные, которые не повторяются во второй. Языком SQL делается просто:
Код: plaintext
1.
2.
select * from Table1 a
where a.id not in (select id from Table2)
или
Код: plaintext
1.
2.
select * from Table1 a
where not exists (select  1  from Table2 b  where b.id = a.id)
Как тоже самое написать в 1С 8 ?
...
Рейтинг: 0 / 0
Запросы в 1С 8
    #36297101
Estel I
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Однако первый запрос прямо также и пишется. Можно даже английскими термами
...
Рейтинг: 0 / 0
Запросы в 1С 8
    #36297125
vitkhv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Estel I,
Только вместо id будет ссылка.
...
Рейтинг: 0 / 0
Запросы в 1С 8
    #36297381
Нельсон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
про второй запрос все скромно молчат ибо "exists" в 1С не поддерживается!
...
Рейтинг: 0 / 0
Запросы в 1С 8
    #36297856
leaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
ВЫБРАТЬ
	Номенклатура.ПометкаУдаления,
	Номенклатура.Наименование,
	Номенклатура.Код
ИЗ
	Справочник.Номенклатура КАК Номенклатура
		ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
			Номенклатура.Ссылка КАК Ссылка
		ИЗ
			Справочник.Номенклатура КАК Номенклатура
		ГДЕ
			(НЕ Номенклатура.ПометкаУдаления)) КАК Неудаленные
		ПО Номенклатура.Ссылка = Неудаленные.Ссылка.Ссылка  
Где Неудаленные.Ссылка Есть NULL

наверное не будет работать? ;-)

exsist кстати не очень быстро работает
...
Рейтинг: 0 / 0
Запросы в 1С 8
    #36297979
Нектотам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
leafexsist кстати не очень быстро работаетДля MS SQL и случая, когда left join используется для замены not exists это не правда. Планы выполнения запросов одинаковы и содержат "Left Anti Semi Join". А для случаев замены where exists даже обычно наоборот (т.к. придётся вставлять distinct).
...
Рейтинг: 0 / 0
Запросы в 1С 8
    #36298034
leaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну может и так
я давно читал толстую красную книгу по скл
там целое описание этого явления
но точного ответа нет
хотя может подзабыл? )
...
Рейтинг: 0 / 0
Запросы в 1С 8
    #36298059
Нектотам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
leaf,

Для некоторых случаев подзапросов с exists действительно возможны не самые оптимальные планы, но не в случае с заменой на left join. Ну и не для данного случая а в целом - такой keft join предполагает, что в правой таблице (запросе) все поля not null.
...
Рейтинг: 0 / 0
Запросы в 1С 8
    #36298132
leaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну вроде там налл только те поля которые помечены на удаление? )
не пойму где грабли - научите?
...
Рейтинг: 0 / 0
Запросы в 1С 8
    #36298374
Фотография PA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нельсонпро второй запрос все скромно молчат ибо "exists" в 1С не поддерживается!
Ну, например в 1цэ это можно так обойти:
Код: plaintext
1.
select * from Table1 a
where not  1  in (select top  1   1  from Table2 b  where b.id = a.id)
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / [игнор отключен] [закрыт для гостей] / Запросы в 1С 8
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]