Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.009 c
15-1202828471
Koha_San
2008-02-12 18:01
2008.03.23
BDS 2007 на фрейм ворк какой версии, 2-й или 1-й


2-1204030372
vegarulez
2008-02-26 15:52
2008.03.23
Вопрос про создание TLabel.


15-1202872059
Slider007
2008-02-13 06:07
2008.03.23
С днем рождения ! 13 февраля 2008 среда


2-1204008737
Рома....
2008-02-26 09:52
2008.03.23
Потоки


2-1203672334
Ковалев Г.Н
2008-02-22 12:25
2008.03.23
Borland Delphi 2006




   Наверх