Имя: Пароль:
1C
1С v8
Как использовать Exists в запросе
0 Gobo
 
20.05.13
06:52
Доброе время суток !

Как на русском написать запрос с использованием exists в стандартного SQL ?
Мне надо выбрать из одной таблицы данные, которые не встречаются в другом.
На SQL бы написал так:

select * from table1 tab1
where not exits (select 1 from table2 tab2 where tab2.s_id=tab1.p_id)
1 vis_tmp
 
20.05.13
06:53
НЕ В (...)
2 Jonny_Khomich
 
20.05.13
06:53
(0) 1с поддерживает запросы на T-SQL, пиши так
3 йети
 
20.05.13
06:54
выбрать * Из Табл1
Из Табл1
Левое соединение Табл2
По Табл1.Поле = Табл2.Поле
Где Табл2.Поле ЕСТЬ NULL
4 el-gamberro
 
20.05.13
07:16
никак, Exists не поддерживается диалектом 1с. пишите запросы по другому
5 spock
 
20.05.13
07:30
select *
from table1 tab1
where
  1 not in (
     select 1 from table2 tab2 where tab2.s_id=tab1.p_id
)
6 Sammo
 
20.05.13
07:35
Никак.
1. В языке 1с нет exists, только in и join-ы
2. Нельзя заставить преобразовать запрос 1с в скулевский запрос с использованием exists
7 el-gamberro
 
20.05.13
08:13
тогда уж:

select *
from table1 tab1
where
  1 in (
     select 1 from table2 tab2 where not tab2.s_id=tab1.p_id
)

Это будет ближе по сути к экзисту :)
8 el-gamberro
 
20.05.13
08:13
(7) к (5)
9 Gobo
 
20.05.13
09:44
Значит так ?
Выбрать * Из Табл1
ГДЕ НЕ (Табл1.Поле) В (Выбрать Табл2.Поле ИЗ Табл2)
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн