Добрый день всем,
Для проекта моей стажировки я создаю панель управления для игры, в которую мы играем в перерыве.Мы играем в дартс, ФИФА и бильярд.
Например:
SELECT pw.name AS `winner`
, COUNT(*) AS total
FROM billiard_games g
JOIN players p1
ON p1.id = g.player_1
JOIN players p2
ON p2.id = g.player_2
LEFT
JOIN billiard_winners w
ON w.id = g.id
LEFT
JOIN players pw
ON pw.id = w.winner
GROUP
BY winner
Это превосходит следующий результат:
Winner | Total
---------------
Name1 | 5
Name2 | 7
Это означает, что name1 выиграл 5 раз, а name2 выиграл7 раз.Пока все хорошо?
У меня другие запросы к другим играм.На запрос выше, я прошу billiard_games.Другие запросы такие же, но вместо billiard_games я спрашиваю dart_games & fifa_game.
На первой странице приложения я хочу большой обзор.С победителями всех времен.В этой таблице нужно посчитать ВСЕ победы одного игрока.Так что все победы ФИФА, Бильярд и Дартс все вместе.
Я попробовал это:
SELECT
(SELECT pw.name AS `winner`, COUNT(*) AS total FROM billiard_games g INNER JOIN players p1 ON p1.id = g.player_1 INNER JOIN players p2 ON p2.id = g.player_2 LEFT JOIN billiard_winners w ON w.id = g.id LEFT JOIN players pw ON pw.id = w.winner GROUP BY winner)+
(SELECT pw.name AS `winner`, COUNT(*) AS total FROM dart_games g INNER JOIN players p1 ON p1.id = g.player_1 INNER JOIN players p2 ON p2.id = g.player_2 LEFT JOIN dart_winners w ON w.id = g.id LEFT JOIN players pw ON pw.id = w.winner GROUP BY winner)+
(SELECT pw.name AS `winner`, COUNT(*) AS total FROM fifa_games g INNER JOIN players p1 ON p1.id = g.player_1 INNER JOIN players p2 ON p2.id = g.player_2 LEFT JOIN fifa_winners w ON w.id = g.id LEFT JOIN players pw ON pw.id = w.winner GROUP BY winner)
AS SumCount
Это, однако, не работает.Может кто-нибудь мне помочь?Я хочу ВСЕ имена и ВСЕ победы в одном представлении.