#php #mysql
#php #mysql
Вопрос:
Я работаю на PHP. Это мой запрос:
$sql = "SELECT *
from place as s
where checkDistance($lati1,$longi1,s.lat,s.lon)<$dist";
В этой таблице place есть три поля: placeId, PlaceName и Адрес. Теперь я хочу вычислить рейтинг placeId, которые являются результатом приведенного выше запроса. Для вычисления рейтинга у меня есть другая таблица рейтинга, в которой есть два поля: placeId и noOfPerson.
Рейтинг будет рассчитываться по (noOfPerson / maximum_no_of_person) для каждого placeId. Как я могу это реализовать?
Ответ №1:
Ваш запрос мог бы выполнить большую часть работы здесь, он выберет значения из place
таблицы, объединенные с количеством человек для каждого места, упорядоченные по нужному вам ранжированию, сверху вниз:
SELECT s.placeid, s.PlaceName, s.Address, r.noOfPerson
FROM place as s JOIN rating as r ON (s.placeid = r.placeid)
WHERE checkDistance($lati1,$longi1,s.lat,s.lon)
ORDER BY r.noOfPerson / ( SELECT MAX(noOfPerson) FROM rating ) DESC