Запрос долготы и широты, но только строки, соответствующие столбцу в одной таблице
Я посмотрел, посмотрел, попробовал и попытался безуспешно. У меня есть запрос, который я использую для отображения пользователей в определенном диапазоне расстояний. Он отлично работает, но возвращает всех пользователей из моего 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";
Спасибо за вклад каждого. Я прошу прощения за мою глупость.