Запрос долготы и широты, но только строки, соответствующие столбцу в одной таблице

Я посмотрел, посмотрел, попробовал и попытался безуспешно. У меня есть запрос, который я использую для отображения пользователей в определенном диапазоне расстояний. Он отлично работает, но возвращает всех пользователей из моего users таблица, и я хочу, чтобы он возвращал только тех пользователей, где значение в account_type равно "1". Таким образом, в основном разные типы учетных записей разделяют мою таблицу пользователей, и на этой странице я хочу, чтобы отображался только один тип пользователей. Я пробовал все виды вещей, в том числе присоединение к одному столу, который, как я знаю, не имеет смысла, и он все равно не сработал. В основном, я хотел бы знать, где в этом запросе я могу добавить предложение WHERE, чтобы проверить столбец с именем account_type.

Вот мой функциональный запрос:

SELECT `user_id`, ( 3959 * acos( cos( radians('".$lat."') ) * cos( radians( lat ) ) * cos( radians( lng ) - radians('".$lng."') ) + sin( radians('".$lat."') ) * sin( radians( lat ) ) ) )  AS distance FROM users   HAVING distance <= '".$dist."'  ORDER BY distance

Поскольку я хочу вернуть только пользователей из этой таблицы, которые имеют account_type = 1, я попытался выполнить много разных вариантов следующего, но безуспешно:

SELECT `user_id`, `account_type`, ( 3959 * acos( cos( radians('".$lat."') ) * cos( radians( lat ) ) * cos( radians( lng ) - radians('".$lng."') ) + sin( radians('".$lat."') ) * sin( radians( lat ) ) ) )  AS distance FROM users   ***WHERE `account_type` = '1'*** HAVING distance <= '".$dist."'  ORDER BY distance

SELECT `user_id`, `account_type`, ( 3959 * acos( cos( radians('".$lat."') ) * cos( radians( lat ) ) * cos( radians( lng ) - radians('".$lng."') ) + sin( radians('".$lat."') ) * sin( radians( lat ) ) ) )  AS distance FROM users   HAVING distance <= '".$dist."'  ***WHERE `account_type` = '1'*** ORDER BY distance

многие другие, хотя я не буду больше загрязнять эту тему. Может кто-нибудь сказать, пожалуйста, что я делаю не так? Спасибо

1 ответ

@rhavendc был прав. Я дебил. Аккаунт, который я создал, чтобы проверить это, я использовал в каком-то отдаленном месте, и хотя на моем сайте было более 20 тестовых аккаунтов, в 100 милях от сумасшедшего местоположения, которое использовал мой тестовый аккаунт, не было ни одного, такого, как совпадающие с account_type='1'

Поэтому, как только я понял, что потребовалось 2 секунды, чтобы просто использовать этот запрос, чтобы получить правильный результат

$ QRY = "SELECT user_id, (3959 * acos (cos (радианы ('".$ Lat."')) * Cos (радианы (широта)) * cos(радианы ( lng) - радианы ('".$ Lng."')) + Sin (радианы ('".$lat.")) * sin(радианы (широта))) AS расстояние от пользователей WHERE account_type = '1'расстояние HAVING <= '".$dist."' ORDER BY distance";

Спасибо за вклад каждого. Я прошу прощения за мою глупость.

Другие вопросы по тегам