Я пытаюсь подготовить запрос для поиска мест на основе текущего местоположения пользователя, используя структуру таблицы WordPress.
Я разрабатываю это приложение в WordPress.
Я создал собственный тип записи под названием store. Когда хранилище добавлено администратором, я могу найти его значения lat/lng
с помощью геокодирования и сохранить их в таблице wp_postmeta
для двух мета-ключей store_lat
и store_lng
, в то время как основная информация сохраняется в * 1009. * таблица.
Я хочу получить магазины из таблицы wp_posts, отфильтровав записи в таблице wp_postmeta, используя расстояние между двумя точками, одна из которых является текущим местоположением пользователя.
Я построил следующий запрос, чтобы получить значения lat / lng в одной строке для каждого post_id из таблицы wp_postmeta, которая подходит нормально:
SELECT a.post_id, a.meta_value as lat, b.meta_value as lng
FROM
wp_postmeta as a,
wp_postmeta as b
WHERE a.meta_key = "store_lat"
AND b.meta_key= "store_lng"
AND a.post_id = b.post_id
Я также получил запрос, чтобы найти «ближайшие местоположения» на основе текущего местоположения пользователя:
SELECT id, ( 6371 * acos( cos( radians(22) ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(88) ) + sin( radians(22) ) * sin( radians( lat ) ) ) ) AS distance FROM *** HAVING distance < 1 ORDER BY distance LIMIT 0 , 20;
Но я не могу присоединиться к этим двум запросам, чтобы найти наши магазины. Я не смог выяснить, что поставить вместо ***
и получить нужные магазины из таблицы wp_posts.