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

Вниз

Запрос по БД   Найти похожие ветки 

 
n_sch   (2007-10-31 11:41) [0]

Добрый день! Есть две таблицы, одна с эталонными данными, другая с меняющимся числом записей обе проиндексированны по одному ключевому полю. Вопрос как из эталонной таблицы выбрать только те записи которых нет в таблице с меняющимся числом записей??? SQL запросы типа "<>" или NOT LIKE не помогают...Заранее спасибо!


 
Sergey13 ©   (2007-10-31 11:44) [1]

not exists попробуй


 
Правильный_Вася   (2007-10-31 11:46) [2]

SELECT t1.* FROM t1 LEFT OUTER JOIN t2 ON t1.pk=t2.pk
WHERE t2.pk IS NULL


 
DrPass ©   (2007-10-31 13:49) [3]


> Sergey13 ©   (31.10.07 11:44) [1]
> not exists попробуй

С Interbase так пробовать не надо. Она на каждую запись будет отдельный select делать. Только LEFT JOIN


 
Sergey13 ©   (2007-10-31 14:24) [4]

> [3] DrPass ©   (31.10.07 13:49)

> Она на каждую запись будет отдельный select делать.

Это нормальное поведение для любого сервера, а не только интербейс. Да, оператор достаточно затратный, не спорю. Но по первичному ключу вряд ли будут сильные тормоза. К тому же запрос скорее всего не часто выполняемый. Как вариант вполне приемлем. ИМХО.


 
DrPass ©   (2007-10-31 15:17) [5]


> Sergey13 ©   (31.10.07 14:24) [4]


> Это нормальное поведение для любого сервера, а не только
> интербейс

Ненормальное. "Правильный" оптимизатор распознает, что в данном случае можно выполнить объединение таблиц, и собственно сведет операцию к тому самому LEFT JOIN"у. А LEFT JOIN будет выполняться намного быстрее - проверь.


 
Sergey13 ©   (2007-10-31 15:37) [6]

> [5] DrPass ©   (31.10.07 15:17)

> "Правильный" оптимизатор распознает, что в данном случае
> можно выполнить объединение таблиц, и собственно сведет
> операцию к тому самому LEFT JOIN"у.

Сомнительно мне это, но проверять лень, да и не на чем.


 
Desdechado ©   (2007-10-31 15:46) [7]

> Sergey13 ©   (31.10.07 15:37) [6]
Оракл в случае не очень вычурных EXISTS преобразует.


 
Sergey13 ©   (2007-10-31 15:53) [8]

> [7] Desdechado ©   (31.10.07 15:46)
Врать не буду, не наблюдал.
Я вообще EXISTS не особо "люблю" пользовать, поэтому простых попадалось мало.



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

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

Наверх




Память: 0.48 MB
Время: 0.015 c
15-1202831227
Nucer
2008-02-12 18:47
2008.03.23
Лицензирование Windows 2003 Server Standard


2-1204100700
DimOk
2008-02-27 11:25
2008.03.23
Формы fsMDIChild в DLL


9-1168113997
!!!MISTIK!!!
2007-01-06 23:06
2008.03.23
Тени в GLScene


6-1183235019
TNMNNTP
2007-07-01 00:23
2008.03.23
TNMNNTP


2-1203705791
Eero
2008-02-22 21:43
2008.03.23
Как передать неявно созданный объект в процедуру?