Форум: "Базы";
Текущий архив: 2007.12.30;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.012 c