Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Alien
Зарегистрирован: 22.12.2001 Сообщения: 25 Откуда: Сергиев Посад
|
Добавлено: Ср Мар 13 2002 14:31 Заголовок сообщения: Помогите сообразить, пожалуйста (Запрос на Sql)!! |
|
|
Так использоваться оператор IN: Select tab1.* from tab1 where (tab1.field1, tab1.field2) not IN (select tab2.field1, tab2.field2 from tab2) к сожалению, не может (только один столбец должен быть слева и справа от него). Может, кто-нибудь посоветует, как попроще реализовать подобный запрос? |
|
Вернуться к началу |
|
|
Евгений Григорьев Гость
|
Добавлено: Ср Мар 13 2002 16:16 Заголовок сообщения: Re: Помогите сообразить, пожалуйста (Запрос на Sql)!! |
|
|
Если не ошибаюсь, в результате должны быть строки с парой полей f1 и f2 не встречающихся (вместе или по отдельности) в Tab2.
Можно без IN
SELECT Tab1.* FROM Tab1 LEFT JOIN Tab2 ON (Tab1.f1 = Tab2.f1) AND (Tab1.f2 = Tab2.f2) WHERE (((Tab2.f1) Is Null) AND /*...AND - это вместе, OR - по отдельности... */ ((Tab2.f2) Is Null)); |
|
Вернуться к началу |
|
|
Andrey Barashkin Гость
|
Добавлено: Ср Мар 13 2002 21:27 Заголовок сообщения: Re: Помогите сообразить, пожалуйста (Запрос на Sql)!! |
|
|
Select tab1.* from tab1 where (tab1.field1, tab1.field2) not IN (select tab2.field1, tab2.field2 from tab2)
Преевратите в следующий вариант
Select tab1.* from tab1 where NOT EXISTS (select 1 from tab2 Where tab1.field1 = tab2.field1 and tab1.field2 = tab2.field2 ) |
|
Вернуться к началу |
|
|
GAI Гость
|
Добавлено: Пт Мар 15 2002 05:57 Заголовок сообщения: Re: Помогите сообразить, пожалуйста (Запрос на Sql)!! |
|
|
Для нецелострочного несовпадения: SELECT * FROM t1 WHERE (((f1) Not In (Select f1 from t2)) AND(или OR) ((f2) Not In (Select f2 from t2)));
Для полнострочного несовпадения: SELECT tab1.* FROM tab1 LEFT JOIN tab2 ON (tab1.field2 = tab2.field2) AND (tab1.field1 = tab2.field1) WHERE (((tab2.field1) Is Null)) AND(или OR)(((tab2.field2) Is Null));
Удачись на АнтиЛамера! Удачи! |
|
Вернуться к началу |
|
|
|