Сортировка результата по данным из другой таблицы
Есть таблица log в которую заносится информация о запросах.
id - не уникальное поле в случае прихода повторного запроса добавляется новая запись.
Во первых по популярности. То есть чем больше отношение (кол-во записей с таким id в log) / (разница минимального и максимального значений поля time в таблице log для записей с таким id) (это получается кол-во запросов в единицу времени) тем выше должен быть данный запрос в результате.
Во вторых по максимальному значению поля rescount в таблице log для записей с таким id.
Подскажите пожалуйста как это можно сделать и какие индексы необходимо добавить, чтобы такая сортировка работала быстро.
Есть таблица log в которую заносится информация о запросах.
id - не уникальное поле в случае прихода повторного запроса добавляется новая запись.
И таблица query в которой хранятся запросы.id bigint(20)
old_id bigint(20)
ip int(11)
time int(11)
userid int(10)
uid binary(32)
start int(10)
rescount bigint(20)
Нужно выбрать из таблицы query записи у которых поле query совпадает с несколькими строками (с этим проблем нет) и отсортировать их следующим образом:id bigint(20)
query text
Во первых по популярности. То есть чем больше отношение (кол-во записей с таким id в log) / (разница минимального и максимального значений поля time в таблице log для записей с таким id) (это получается кол-во запросов в единицу времени) тем выше должен быть данный запрос в результате.
Во вторых по максимальному значению поля rescount в таблице log для записей с таким id.
Подскажите пожалуйста как это можно сделать и какие индексы необходимо добавить, чтобы такая сортировка работала быстро.