Как написать в Аксесе запрос типа:

Berkut
Дата: 27.05.2004 11:16:56
По типу операции со множествами.
select * from A
Minus
Select * from ;

(Я просто синтаксиса не знаю, а в справке не нашел)


6epkyT

paparome
Дата: 27.05.2004 11:20:00
select a.*
from a left join b on a.id = b.id
where b.id is null
?
paparome
Дата: 27.05.2004 11:21:49
автор
Я просто синтаксиса не знаю

Может сначала стоит выучить ANSI-SQL, хотя бы для представления, что он может и как примерно?
Rivkin Dmitry
Дата: 27.05.2004 11:30:12
Можно и так:

select a.*
from a where a.id not in (select b.id from b)
paparome
Дата: 27.05.2004 11:32:17
автор
Можно и так:

select a.*
from a where a.id not in (select b.id from b)


Можно :)
Так даже читабельнее :)
Berkut
Дата: 27.05.2004 14:46:24
paparome
Может сначала стоит выучить ANSI-SQL

Это я знаю. Просто не знал как сделать конкретно в Аксесе.
А так спасибо, попробую.


6epkyT

Berkut
Дата: 30.05.2004 18:25:37
....
select a.*
from a where a.id not in (select b.id from b)


На самом деле я так сначала и сделал. Но при выполнении этого запроса Аксес почему-то загнулся. Не знаю, может быть, просто записей много (в таблице a ~ 70000 записей, в таблице b - 3000). Хм...


6epkyT

paparome
Дата: 31.05.2004 09:42:35
автор
Не знаю, может быть, просто записей много (в таблице a ~ 70000 записей, в таблице b - 3000). Хм...


Много, not in работает достаточно медленно :(
Berkut
Дата: 31.05.2004 10:54:10
paranome
not in работает достаточно медленно

Да, я вроде дождался когда все выполнится, только потом не смог просмотреть получившиеся записи, т.к. скроллинг экрана завис (и вообще БД...) (


6epkyT

paparome
Дата: 31.05.2004 10:57:14
автор
Да, я вроде дождался когда все выполнится, только потом не смог просмотреть получившиеся записи, т.к. скроллинг экрана завис (и вообще БД...) (


Не - не дождался
Это ты дождался первых записей, т.е. тех которые на экран влезли, а когда решил поскролить он начал следующуюю порцию данных обсчитывать и "умер" :(

А чем мой вариант плох?