Запросы, планы, оптимизация запросов, ...
Модераторы: kdv, CyberMax
-
Boris Kuritsin
- Сообщения: 11
- Зарегистрирован: 24 фев 2005, 13:10
Сообщение
Boris Kuritsin » 11 окт 2005, 17:25
Есть запрос типа
Код: Выделить всё
select items.*, <........>, (select needs from enum_needs(items.id)) dist_need
from items left outer join <......>
where dist_need is null
Здесь enum_needs - хранимая процедура.
Получаю ошибку: поле dist_need неизвестно. Как побороть? как мне правильно сослаться на поле в выражении where, содержимое которого есть результат вложенного select`а?
-
Merlin
- Динозавр IB/FB
- Сообщения: 1502
- Зарегистрирован: 27 окт 2004, 11:44
Сообщение
Merlin » 11 окт 2005, 17:41
Повторить этот вложенный селект в where. Кстати, именно в этом запросе он вообще только там и нужен. Ещё в тему похожих запросов можно помедитировать на тему включения процедуры в запрос по типу
Код: Выделить всё
select items.*, <........>, enum_needs.needs
from items left join <......>
left join enum_needs(items.id) on 0=0
where enum_needs.needs is null
а ещё удобно и полезно, а если таблица или хп-шка упоминается в запросе дважды, так просто необходимо, пользоваться алиасами.