Сортировка результата согласно сумме значений весов

Sergey Lomov

Новичок
Сортировка результата согласно сумме значений весов

Стоит задача сделать запрос к 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
Как сделать запрос к MySQL таким образом, чтобы на выходе получилась выдача множества id, отсортированных по сумме весов weight, склеенных относительно key?

Например:

Задаем 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 должен быть? :confused:


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

Gas

может по одной?
нужно сгруппировать по key (group by key), и сортировать по sum(weight). Совсем немного тебе нужно допилить свой запрос.
 
Сверху