Ik heb in de SELECT-clause van een query een virtuele kolom gecreƫerd, "post_count":

SELECT
usr.*,
(SELECT count(*) FROM posts WHERE usr_user_id = usr.user_id) AS post_count
FROM
users usr
WHERE
usr.cat_category_id = 52

Dit gaat goed.
Als ik echter de post_count wil gebruiken in de WHERE, krijg ik een fout. Hoe is dit op te lossen?

SELECT
usr.*,
(SELECT count(*) FROM posts WHERE usr_user_id = usr.user_id) AS post_count
FROM
users usr
WHERE
usr.cat_category_id = 52
AND post_count > 1

Ik krijg de fout:
#1054 - Unknown column 'post_count' in 'where clause'

Alvast bedankt,
R.
In de WHERE is de alias inderdaad niet beschikbaar, je zult de berekening daar nog een keer uit moeten voeren.

Toevoeging op 06/11/2010 12:24:55:

In de WHERE is de alias inderdaad niet beschikbaar, je zult de berekening daar nog een keer uit moeten voeren.
Dit is niet het antwoord waarop ik hoopte, maar evengoed bedankt.
De snelheid van de query lijkt er niet onder te leiden.

Dank,
Roberto
In MySQL is er volgens mij helaas geen andere mogelijkheid. Echte databases laten je wel de alias te gebruiken in een WHERE :-)

Reageren