Try this:
SELECT ID,
post_title,
post_author,
MAX(CASE WHEN meta_key='geo_latitude' THEN meta_value END) latitude,
MAX(CASE WHEN meta_key='geo_longitude' THEN meta_value END) longitude,
( 3959 * ACOS( COS( RADIANS(18.204540500000) )
* COS( RADIANS( MAX(CASE WHEN meta_key='geo_latitude' THEN meta_value END) ) )
* COS( RADIANS( MAX(CASE WHEN meta_key='geo_longitude' THEN meta_value END) )
- RADIANS(-66.450958500000) )
+ SIN( RADIANS(18.204540500000 ) )
* SIN( RADIANS( MAX(CASE WHEN meta_key='geo_latitude' THEN meta_value END) ) )
)
) AS distance
FROM `wp_posts`
LEFT JOIN `wp_postmeta`
ON ID=post_id
WHERE post_type='place'
AND (meta_key='geo_latitude' OR meta_key='geo_longitude')
GROUP BY ID, post_title, post_author
ORDER BY ID ASC