Sergey Lomov
Новичок
Сортировка результата согласно сумме значений весов
Стоит задача сделать запрос к MySQL, отсортировав выдачу по запросу согласно сумме весов key, если запрашивается несколько key одновоременно или просто весу, если key только один, чтобы получить множество id (не должны повторяться).
Значит, есть таблица table:
Как сделать запрос к MySQL таким образом, чтобы на выходе получилась выдача множества id, отсортированных по сумме весов weight, склеенных относительно key?
Например:
Задаем key со значением 1 на выходе получаем выдачу:
Задаем key со значением 1 или 2 на выходе получаем:
Колонка sum(weight для key=1) и sum(weight для key=1 || key=2) это результат работы MySQL по суммированию weight, относительно которых будет проходить сортировка выдачи id.
В результате запрос должен получиться типа такого (который сейчас, естественно, не работает):
Помогите советом. Какой запрос к MySQL должен быть?
Заранее спасибо за дельные советы.
Стоит задача сделать запрос к MySQL, отсортировав выдачу по запросу согласно сумме весов key, если запрашивается несколько key одновоременно или просто весу, если key только один, чтобы получить множество id (не должны повторяться).
Значит, есть таблица table:
PHP:
id key weight
-------------------------------------------
1 1 1
1 2 4
2 1 3
2 3 0
3 4 2
Например:
Задаем key со значением 1 на выходе получаем выдачу:
PHP:
id sum(weight для key=1) ORDER BY sum(weight для key=1)
------------------------------------------
1 1
2 3
Задаем key со значением 1 или 2 на выходе получаем:
PHP:
id sum(weight для key=1 || key=2) ORDER BY sum(weight для key=1 || key=2)
------------------------------------------
2 3
1 5
Колонка sum(weight для key=1) и sum(weight для key=1 || key=2) это результат работы MySQL по суммированию weight, относительно которых будет проходить сортировка выдачи id.
В результате запрос должен получиться типа такого (который сейчас, естественно, не работает):
PHP:
SELECT id FROM table WHERE key=1 || key=2 ORDER BY weight AS SUM
Помогите советом. Какой запрос к MySQL должен быть?

Заранее спасибо за дельные советы.