Главная страница
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.017 c
15-1202674320
Small Donkey
2008-02-10 23:12
2008.03.23
В помощь програмисту


2-1203579448
Quart
2008-02-21 10:37
2008.03.23
QRLabel


2-1203442928
Mk30
2008-02-19 20:42
2008.03.23
Как в label.caption записать логическое имя установленной флешки?


2-1203840160
asdqwer
2008-02-24 11:02
2008.03.23
«Приклеивание» окон


2-1203666919
Sonia
2008-02-22 10:55
2008.03.23
код по последовательному поиску имени в массиве элементов