SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 14.11.2010 11:04:41

smackthat
Завсегдатай
Зарегистрирован: 18.02.2009
Сообщений: 32

Не находит поле, заданное через AS в WHERE

Добрый день, есть такой простой запрос:


SELECT balance, reserved,
(balance - reserved) AS equity

FROM (users)

WHERE equity > 0

Получаю ошибку [Err] 1054 - Unknown column 'equity' in 'where clause'. Как исправить?

Неактивен

 

#2 14.11.2010 15:27:34

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Не находит поле, заданное через AS в WHERE

WHERE не умеет искать по синонимам. Можете написать WHERE balance > reserved
или HAVING equity > 0. В данном случае у них будет одна и та же производительность,
но надо понимать, что HAVING никогда не будет использовать индексов по изначаль-
ным таблицам, в отличие от WHERE, который может их использовать.

Неактивен

 

#3 14.11.2010 15:46:51

smackthat
Завсегдатай
Зарегистрирован: 18.02.2009
Сообщений: 32

Re: Не находит поле, заданное через AS в WHERE

большое спасибо!

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson