Можно проверить ГДЕ в переменной оператора AS?MySQL - PullRequest
1 голос
/ 13 февраля 2012

Может ли кто-нибудь объяснить, почему я не могу использовать предложение WHERE для моей переменной AS (не уверен, как они на самом деле называются.

, если я делаю что-то вроде WHERE a.n = gameone в том же самом месте, это работает.

Могу ли я не использовать предложение WHERE для переменной, созданной как AVG(b.r) AS fra?

Если я могу. как я могу?

SELECT
  a.id, a.n, a.t, a.d,
  AVG(b.r) AS fra, COUNT(b.id) as tvotes
FROM `games` a
LEFT JOIN `games_ratings` b
ON a.id = b.id
WHERE fra >= 2
GROUP BY a.id
ORDER BY a.ts
DESC LIMIT 0, 50

1 Ответ

3 голосов
/ 13 февраля 2012

Нет, выбранные значения не входят в область действия WHERE, поскольку выбранные строки зависят от WHERE. Если вы действительно хотите выполнить условие для них, используйте HAVING, но учтите, что предложения HAVING не оптимизированы.

См. документацию MySQL по SELECT для получения дополнительной информации по HAVING.

...