Работа с алгоритмом ранжирования, но я разочарован множественными вызовами базы данных и вращением данных, мне нужно пройти, чтобы вычислить ранг определенного элемента, вывести его в массив, а затем отсортировать по значение ранга. Возможно ли в MySQL вычислить ранг данной строки на основе данных, найденных в других таблицах?
SELECT key_value FROM table;
Теперь по результирующему набору мне нужно ранжировать каждый элемент на основе различных других таблиц информации об этих элементах. Так что, если вывод был -
|key_value|
|abcd1 |
|abcd2 |
|abcd3 |
Затем, основываясь на значениях 'abcd1' в 3 других таблицах, мне нужно ранжировать каждую запись на основе значения, разделенного на общее количество, вернуть ранг и затем вывести его. Есть ли способ сделать все это в одном операторе SQL? Я думал о настройке некоторых переменных sql и сохранении различных вызовов, а затем о выполнении вычислений, но я все еще не уверен, как бы вы присвоили это выводу операторов SELECT и соответствующим образом оценили его. Я хорошо разбираюсь в PHP, но я вроде MySQL n00b.
Это, вероятно, сбивает с толку способ, которым я описываю это - я могу ответить на больше вопросов, чтобы помочь лучше объяснить, что я пытаюсь сделать.
По сути, каждая строка, возвращаемая в исходном операторе, действительно относится только к каждому пользователю на основе информации, хранящейся об этом объекте в 3 других таблицах. Необходимо знать, как наилучшим образом использовать данные в 3 других таблицах для ранжирования релевантности данных из первой таблицы.