Форум: "Базы";
Текущий архив: 2008.03.23;
Скачать: [xml.tar.bz2];
ВнизЗапрос по БД Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.007 c