Показать сообщение отдельно
Старый 08.09.2005, 18:07   #19  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,651 / 1158 (42) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Приведенный код не решает поставленную задачу. У тебя получилось примерно следующее:

( Table1.ItemId = Table2.ItemId )
Декартово произведение
(Table1.ItemId = Table3.ItemId AND Table3.ItemId NOT EXISTS(Table2.ItemId))

Вся проблема именно в том, что объединение пойдет не по типу UNION (что предполагается), а именно как декартово произведение. Представляешь количество "мусора"?

А то, что предлагает ahtoh это примерно следующее:

Table1.ItemId EXISTS((Table2.ItemId) декартово произведение (Table3.ItemId))

Поскольку составить такой Query не получится, то он предлагает то, что внутри Exists оформить как отдельный View.

Все корректно. Вопрос только в скорости такой выборки.