Колонка не существует? - PullRequest
       9

Колонка не существует?

5 голосов
/ 26 октября 2010

Интересно, может ли кто-нибудь немного помочь мне с этим запросом:

SELECT u1.id,count(DISTINCT u2.userstatus) as TEMPCOLUMN FROM users AS u1
JOIN friendssym ON u1.id = friendssym.user_id
JOIN (SELECT * FROM users) as u2 ON friendssym.friend_id=u2.id
WHERE TEMPCOLUMN=1 
group by u1.id;

Я хочу получить результаты, только если число (которое переименовано) равно 1. Я получаю ошибку сэтот запрос:

 ERROR:  column "tempcolumn" does not exist

Но столбец должен существовать, верно?Кто-нибудь может помочь?Спасибо!

1 Ответ

3 голосов
/ 26 октября 2010

Нельзя ссылаться на псевдоним столбца в предложении WHERE.

  SELECT u1.id,
         COUNT(DISTINCT u2.userstatus) as TEMPCOLUMN 
    FROM USERS AS u1
    JOIN friendssym ON u1.id = friendssym.user_id
    JOIN USERS as u2 ON friendssym.friend_id = u2.id      
GROUP BY u1.id
  HAVING COUNT(DISTINCT u2.userstatus) = 1

В традиционном SQL самое раннее, что вы можете ссылаться на псевдоним столбца, это предложение ORDER BY.Но MySQL и SQL Server разрешают доступ в предложениях HAVING и GROUP BY.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...