2016-08-26 4 views
0
SELECT DISTINCT  
      city_latitude.post_id, 
      city_latitude.meta_value as charity_latitude, 
      city_longitude.meta_value as charity_longitude, 
      ((ACOS(SIN(%f * PI()/180) * SIN(city_latitude.meta_value * PI()/180) + COS(%f * PI()/180) * COS(city_latitude.meta_value * PI()/180) * COS((%f - city_longitude.meta_value) * PI()/180)) * 180/PI()) * 60 * 1.1515) AS distance, 
      FxFfekP0_posts.post_title 
      FROM 
      FxFfekP0_postmeta AS city_latitude 
      LEFT JOIN FxFfekP0_postmeta as city_longitude ON city_latitude.post_id = city_longitude.post_id 
      INNER JOIN FxFfekP0_posts ON FxFfekP0_posts.ID = city_latitude.post_id 
      WHERE city_latitude.meta_key = 'latitude' AND city_longitude.meta_key = 'longitude' 
      HAVING distance < %d 
      ORDER BY distance ASC 

Как добавить к этому запросу и включает в себя пользовательское поле charity_name как столбец? Я с трудом с этим ...WordPress Database: Включите пользовательское поле в MySQL Query

Примечание: я сделал этот пост в wordpress.stackoverflow.com, но мне посоветовали разместить его здесь, потому что это гораздо больше вопрос MySQL.

+0

Изменить «WHERE» до «и». Измените последующие «AND» на «WHERE» – Strawberry

+0

Что? @Strawberry – dcolumbus

ответ

0

непроверенная, но должны быть только о право- поиске этот сайт для любых битов, которые не имеют смысла сразу ...

SELECT lat.post_id 
    , lat.meta_value charity_latitude 
    , lon.meta_value charity_longitude 
    , name.meta_value charity_name 
    , geo_distance_km(user_lat,user_lon,lat.meta_value,lon.meta_value) distance 
    , p.post_title 
    FROM FxFfekP0_postmeta lat 
    LEFT 
    JOIN FxFfekP0_postmeta lon 
    ON lon.post_id = lat .post_id 
    AND lon.meta_key = 'longitude' 
    LEFT 
    JOIN FxFfekP0_posts p 
    ON p.ID = lat.post_id 
    LEFT 
    JOIN FxFfekP0_postmeta name 
    ON name.post_id = lat.post_id 
    AND name.meta_key = 'charity_name' 
WHERE lat.meta_key = 'latitude' 
AND geo_distance_km(user_lat,user_lon,lat.meta_value,lon.meta_value) < %d 
     ORDER BY distance ASC 
+0

'geo_distance_km'? – dcolumbus

+0

@dcolumbus действительно. До встречи в октябре. – Strawberry

+0

... мои извинения за то, что вы не ответили на свой ответ раньше. Мне пришлось переходить на другие вопросы, и я не получил уведомление. Я знаю, что 'geo_distance_km' является функцией, но где должна определяться эта функция, если этот запрос выполняется сингулярно? – dcolumbus

Смежные вопросы