SQL-запрос для извлечения данных на основе широты и долготы не работает

#sql #wordpress #geolocation

#sql #wordpress #геолокация

Вопрос:

Ребята, есть идеи, почему этот запрос не возвращает никаких результатов?

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

 SELECT DISTINCT  p.ID,  p.post_title,  map_lat.meta_value as locLat,  map_lng.meta_value as locLong,  ( 6371 * acos(  cos( radians( '-25.427603111334' ) )  * cos( radians( map_lat.meta_value ) )  * cos( radians( map_lng.meta_value ) - radians( '' ) )    sin( radians( '-25.427603111334' ) )  * sin( radians( map_lat.meta_value ) )  ) )  AS distance  FROM wpby_posts p  INNER JOIN wpby_postmeta map_lat ON p.ID = map_lat.post_id  INNER JOIN wpby_postmeta map_lng ON p.ID = map_lng.post_id  WHERE 1 = 1  AND p.post_type = 'listar'  AND map_lat.meta_key = 'latitude'  AND map_lng.meta_key = 'longitude'  HAVING distance lt; '1000'  ORDER BY distance ASC   

Все, что я получаю, это:

 gt;gt;gt; Query OK, 0 rows affected  

Любая помощь будет высоко оценена

Комментарии:

1. пометьте свою базу данных

2. Предположительно потому, что нет записей, соответствующих вашим условиям фильтрации/присоединения?

3. Нет. Записи есть

4. Измените ваши ВНУТРЕННИЕ СОЕДИНЕНИЯ на ВНЕШНИЕ СЛЕВА и удалите предложения WHERE/HAVING — теперь ваш запрос должен возвращать строки. Затем добавьте каждый элемент по одному, каждый раз повторяя запрос, пока не выяснится, какой элемент отфильтровывает ваши записи

5. Я понял, что это та часть, которая вычисляет расстояние, которая не работает. Без этого я получаю все строки. Хотя не знаю, как это исправить. Я пытаюсь найти способ выполнить этот расчет. это и есть суть запроса.