У меня есть таблица, очень похожая на приведенную ниже.p1
и p2
на столе означают идентификатор игрока за другим столом.
id score p1 p2 date
-- ----- -- -- ----
1 12 1 2 2011.10.21
2 23 3 4 2011.10.22
3 21 1 3 2011.10.23
4 35 5 1 2011.10.24
5 11 2 3 2011.10.25
Я хочу получить идентификатор игрока (p1 или p2) с наибольшим количеством очков.Мое решение - что-то вроде select sum(score)
, но я не могу сформировать запрос, потому что игрок может появиться как в столбцах p1, так и в столбце p2.
Также большая проблема возникает, когда я хочу отсортировать баллы по возрастанию и убыванию.Я не знаю что делать.Как можно суммировать и сортировать баллы, если мне нужно сгруппировать в отдельные столбцы?Результат, который я хочу, похож на этот результат:
pID score times_played
--- ----- ------------
1 68 3
3 55 3
5 35 1
2 23 2
4 23 1
Является ли мой дизайн базы данных некорректным?Если есть более разумный способ, я бы хотел знать.Нужно ли мне отдельные запросы, чтобы я мог объединить их на PHP или что-то еще?
Буду признателен за любую помощь.Приветствия.
PS: Я не мог придумать хороший предмет.Не стесняйтесь редактировать.