Имя: Пароль:
1C
 
Запрос (исключение записей одной таблицы, присутствующих в другой в одном запросе)
0 Starhan
 
21.07.08
09:48
Есть две таблицы, нужно выбрать все из первой, кроме тех что присутствуют во второй таблице.

подскажите как?
1 Маркетолог
 
21.07.08
09:53
(0) Попробуй  
Не В (Запрос ко второй таблице)
2 Mitriy
 
21.07.08
09:54
левое соединение первой со второй с условием на Null на вторую
3 Кротяра
 
21.07.08
09:54
или
ГДЕ ПОЛЕ_СО_ВТОРОЙ ЕСТЬ NULL
4 Sadovnikov
 
21.07.08
09:55
Select Таблица1.*
From Таблица1
Left Join Таблица2 On <НужноеСвязываниеПоПроверяемымПолям>
Where Таблица2.K.ЛюбоеПолеИзСвязывания Is NULL
5 Starhan
 
21.07.08
10:05
спасибо
6 Тиль
 
21.07.08
10:06
(1)+1 так проще
7 zergo
 
21.07.08
10:16
был прикол с
НЕ В (Запрос ко втрой таблице)

вылетало с ошибкой что невозможно создать более 255 связанных таблиц. запрос был простенький - чтото вроде выбрать всю номенклатуру из справочника , причем которая не числится в одном из регистров сведений. причем вот это "НЕ В .." было как раз по регистру
8 Starhan
 
21.07.08
11:47
уточнение на счет ЕстьNull
поля с обоих таблиц нужно выбрать в подзапросе ?
а потом уже проверять на Null?
9 Mitriy
 
21.07.08
11:56
(8) Если вопрос отновится к (2), то подзапросы не нужны, чо-нить вроде ентого должно работать:

ЛЕВОЕ СОЕДИНЕНИЕ Таблица1 КАК Таблица1 ПО (Таблица1.ПолеСвязи = Таблица2.ПолеСвязи И Таблица2.ПолеСвязи ЕСТЬ NULL )
10 Mitriy
 
21.07.08
11:59
(9)* Пардон:

...
Из Таблица1 КАК Таблица1
ЛЕВОЕ СОЕДИНЕНИЕ Таблица2 КАК Таблица2 ПО (Таблица1.ПолеСвязи = Таблица2.ПолеСвязи И Таблица2.ПолеСвязи ЕСТЬ NULL )
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший