Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.12.30;
Скачать: CL | DM;

Вниз

SQL запрос c not in   Найти похожие ветки 

 
MZ   (2007-08-27 11:11) [0]

уважаемые мастера! Необходимо составиь запрос который отбирает записи из таблицы Table1 у которых совокупность 2 полей (поля индексированы) не равна
совокупности этих полей в Table2. Сделал так

SELECT*
FROM TABLE1
WHERE FIELD1||FIELD2 NOT IN
(SELECT FIELD1||FIELD2
FROM TABLE2)

Как-то это коряво.... И поиск соответственно не индексирован...


 
turbouser ©   (2007-08-27 11:21) [1]

SELECT*
FROM TABLE1 t1
WHERE NOT EXISTS
(SELECT * FROM TABLE2 t2 WHERE t2.FIELD1=t1.FIELD1 and t2.FIELD2=t1.FIELD2)

или
(SELECT * FROM TABLE2 t2 WHERE t2.FIELD1||t2.FIELD2 and t1.FIELD1||t1.FIELD2)
- по обстоятельствам


 
turbouser ©   (2007-08-27 11:24) [2]

(SELECT * FROM TABLE2 t2 WHERE t2.FIELD1||t2.FIELD2 = t1.FIELD1||t1.FIELD2)


 
Вася Правильный   (2007-08-27 11:25) [3]


>  WHERE t2.FIELD1||t2.FIELD2 and t1.FIELD1||t1.FIELD2

это чё за конструкция?


 
MZ   (2007-08-27 11:32) [4]


> turbouser ©   (27.08.07 11:21) [1]
>
> SELECT*
> FROM TABLE1 t1
> WHERE NOT EXISTS
> (SELECT * FROM TABLE2 t2 WHERE t2.FIELD1=t1.FIELD1 and t2.
> FIELD2=t1.FIELD2)


Забыл про Exist :-(  спасибо, работает


 
Johnmen ©   (2007-08-27 11:43) [5]

Классическое решение:
SELECT T1.* FROM TABLE1 T1
LEFT JOIN TABLE1 T2 WHERE (T1.FIELD1=T2.FIELD1) AND (T1.FIELD2=T2.FIELD2)
WHERE T2.FIELD1 IS NULL



Страницы: 1 вся ветка

Текущий архив: 2007.12.30;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.014 c
1-1192005213
9899100
2007-10-10 12:33
2007.12.30
Firebird


2-1196959438
Dib@zol
2007-12-06 19:43
2007.12.30
Работа с делфяными строками на билт-ин асме


2-1196832246
uno
2007-12-05 08:24
2007.12.30
Уведомление о полученном сообщении


2-1196767210
Егоров А.Н.
2007-12-04 14:20
2007.12.30
получить локальный IP-адрес компьютера


2-1196830593
Мурзик
2007-12-05 07:56
2007.12.30
Как присвоить PopupMenu?