У меня есть 3 таблицы.
Таблица пользователей
- user_id
- имя
- картинка
и т. д.
- user_id
- tag_id
- user_id
- геолат
- геолон
Вот что я использовал для запроса местоположения:
Код: Выделить всё
$sql_search_people = "SELECT user_id, ( 3959 * acos( cos( radians(?) ) * cos( radians( geolat ) ) * cos( radians( geolon ) - radians(?) ) + sin( radians(?) ) * sin( radians( geolat ) ) ) ) AS distance FROM geolocation
HAVING distance < '25'";
Код: Выделить всё
$sql_search_people = "SELECT b.user_id, b.name, b.picture, b.tagline, b.genres FROM tag_ref AS a LEFT JOIN users AS b ON a.user_id = b.user_id WHERE a.tag_id IN ($in) GROUP BY a.user_id";
Буду очень признателен за любую помощь.
** ОБНОВЛЕНИЕ **
Поиграв еще немного, мне удалось заставить это работать:
Код: Выделить всё
$sql_search_people = "SELECT a.user_id, b.user_id, c.user_id, c.tag_id, b.name, ( 3959 * acos( cos( radians(?) ) * cos( radians( geolat ) ) * cos( radians( geolon ) - radians(?) ) + sin( radians(?) ) * sin( radians( geolat ) ) ) ) AS distance FROM geolocation AS a RIGHT JOIN tag_ref AS c ON a.user_id = c.user_id RIGHT JOIN users AS b ON a.user_id = b.user_id WHERE c.tag_id IN ($in) HAVING distance < '25' ";
Подробнее здесь: https://stackoverflow.com/questions/501 ... -in-clause