Вывод не вошедших в запрос на объединение строк

Работа VB и СУБД (Access, MSSQL, MySQL, Oracle и пр.)
Правила форума
При создании новой темы не забывайте указывать используемую СУБД.
Андрей гость
Новичок
Новичок
 
Сообщения: 42
Зарегистрирован: 21.09.2005 (Ср) 21:11

Вывод не вошедших в запрос на объединение строк

Сообщение Андрей гость » 12.10.2005 (Ср) 23:36

База Access. При выполнении запроса на объединение из 10 строк таблицы по условию в запрос попали 6. Раскажите как вывести не попавшие в запрос 4 строки. Если поставить вместо = <> или Not то выходит не 4, а 24 записи. Их можно конечно привести к 4, но когда таблица из полумилиона записей то это невозможно. Может есть какойто другой способ
Ученье свет, а не ученых тьма!

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 12.10.2005 (Ср) 23:52

Берём всё условие WHERE, заключаем в скобки, перед скобками ставим NOT...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Андрей гость
Новичок
Новичок
 
Сообщения: 42
Зарегистрирован: 21.09.2005 (Ср) 21:11

Сообщение Андрей гость » 13.10.2005 (Чт) 0:12

И так я тоже пробовал. Усли в таблице большое количество записей то выполнения запроса можно ждать часами.
А нельзя ли как нибудь исключать из таблицы записи, если условие верно, тогда останутся только не вошедшие в запрос.
или же что либо подобное
Ученье свет, а не ученых тьма!

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 13.10.2005 (Чт) 0:26

Код: Выделить всё
SELECT *
FROM Table1
WHERE Table1.RowID NOT IN (SELECT RowID FROM Table1 WHERE RowID > 5)

Те же яйца, вид сбоку.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Андрей гость
Новичок
Новичок
 
Сообщения: 42
Зарегистрирован: 21.09.2005 (Ср) 21:11

Сообщение Андрей гость » 13.10.2005 (Чт) 0:37

А других операторов нет. Машина виснет на этом запросе
Ученье свет, а не ученых тьма!

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 13.10.2005 (Чт) 0:39

Она не виснет, она думает...
Хотя завтра, наверное, придёт Алибек и что-нибудь по этому поводу скажет :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 13.10.2005 (Чт) 0:41

Кстати, а почему прямой запрос выполняется быстро, а через NOT медленно? Разницы вроде никакой :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 13.10.2005 (Чт) 8:03

Ну... Что-то типа
Код: Выделить всё
SELECT parent.ID
FROM parent LEFT JOIN childs ON parent.ID = childs.PARENT_ID
WHERE childs.PARENT_ID IS NULL

Но не уверен за ее скорость.
Lasciate ogni speranza, voi ch'entrate.


Вернуться в Базы данных

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

    TopList  
cron