'MySQL query failing because of column name in HAVING clause
I have a mysql query that works perfectly without the HAVING clause, but when I use that clause I get an error and I think it has to do with the fact that I'm using the clause for a comparison with a column name that I declare in my select.
The Query:
SELECT
DISTINCT p.ID,
p.post_title,
practice_latitude.meta_value as locLat,
practice_longitude.meta_value as locLong,
(
'3959' * acos(
cos(radians('39.40517956963392')) * cos(radians(practice_latitude.meta_value)) * cos(
radians(practice_longitude.meta_value) - radians('-118.99713149999997')
) + sin(radians('39.40517956963392')) * sin(radians(practice_latitude.meta_value))
)
) AS distance
FROM
wp_posts p
INNER JOIN wp_postmeta practice_latitude ON p.ID = practice_latitude.post_id
INNER JOIN wp_postmeta practice_longitude ON p.ID = practice_longitude.post_id
WHERE
p.post_type = 'awpcp_listing'
AND p.post_status = 'publish'
AND practice_latitude.meta_key = '_awpcp_extra_field[36]'
AND practice_longitude.meta_key = '_awpcp_extra_field[37]'
HAVING
distance < 500
group by
practice_latitude.meta_value,
practice_longitude.meta_value;
It seems like the 'distance' column being declared in the select is the issue though. How can I correct that to apply the appropriate HAVING clause e, since the query otherwise works perfectly?
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|
