|
|
|
where not exists (select... и Null
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! В свое время из-за некоторой поспешности (но четкой постановки, исключающей Null, подробности далее) при задаче сравнения содержимого таблиц использовали select ... where not exists (select...), например: select a.code_type, a.name_type from ETYPES a where not exists (select b.code_type, b.name_type from ETYPES b where a.code_type=b.code_type and a.name_type=b.name_type) Задача была такая: имелись 2 БД на Access, которые раз в три месяца синхронизировались, но перед этим определялось, что пользователи не внесли самовольно изменеиня любого плана в таблицы-классификаторы, содержащие типы деталей и т.д. Все поля, по которым проводилось сравнение, являлись или ключевыми, или обязательными, т.е. случаев, когда мог встретиться NULL, не было. Сейчас задача расширена еще на несколько таблиц, требуется сверять уже второстепенные поля, некоторые из которых могут содержать NULL. Пока от технологии такой "сверки", к сожалению отказаться нельзя. На этом существующий прием ст ановится несостоятельным, т.к., как известно, конструкция '...where not exists...' в будет обрабатывать пустые (NULL) совсем не так, как хотелось бы - сравнивая Null и Null при прочих равных, он "найдет" в них отличие. Вчера обощел несколько форумов, пытаясь найти максимально быстрый выход из ситуации (сейчас занимаемся совсем другими делами). Почитал описание All, Any, Some... Пока не могу решиться предложить что-либо, т.к. раньше вообще не сталкивался с этой областью применения SQL. Не могли бы Вы подсказать, что может заменить '...where not exists...' в моей ситуации, какой вариант следует рассмотреть поближе? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2008, 20:06 |
|
||
|
where not exists (select... и Null
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Код: plaintext ------------------------- There’s no silver bullet! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2008, 20:15 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=35371701&tid=1543819]: |
0ms |
get settings: |
4ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
142ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
24ms |
get tp. blocked users: |
1ms |
| others: | 197ms |
| total: | 389ms |

| 0 / 0 |
