2013-04-28 3 views
0

Я создаю спортивную страницу, и я дошел до такой степени, что не могу решить.Таблица спортивной лиги Mysql

Моя проблема заключается в том, что я не могу понять, как хранить позиции каждой команды отдельно после каждого матча. Вот что я хочу добиться:

link

Для создания таблицы лиги У меня есть две таблицы:

клубы: id_clubs, имя
результаты: matchid, турам, hometeam, awayteam, homegoals, awaygoals, дата, id_league

Из таблицы результатов я создаю мою таблицу лиги, который устанавливается следующим образом:

SELECT 
    name AS Team, 
    Sum(P) AS P, 
    Sum(W) AS W, 
    Sum(D) AS D, 
    Sum(L) AS L, 
    SUM(F) as F, 
    SUM(A) AS A, 
    SUM(GD) AS GD, 
    SUM(Pts) AS Pts 
FROM ( 
    SELECT *, 
     hometeamid Team, 
     1 P, 
     IF(homegoal > awaygoal,1,0) W, 
     IF(homegoal = awaygoal,1,0) D, 
     IF(homegoal < awaygoal,1,0) L, 
     homegoal F, 
     awaygoal A, 
     homegoal-awaygoal GD, 
     CASE WHEN homegoal > awaygoal THEN 3 
      WHEN hometeam = awaygoal THEN 1 
      ELSE 0 
     END PTS 
    FROM results 
    WHERE id_league = '$leagueid' 
     AND homegoal IS NOT NULL 
     AND awaygoal IS NOT NULL 

    UNION ALL 

    SELECT *, 
     awayteamid, 
     1, 
     IF(homegoal < awaygoal,1,0), 
     IF(homegoal = awaygoal,1,0), 
     IF(homegoal > awaygoal,1,0), 
     awaygoal, 
     homegoal, 
     awaygoal-homegoal GD, 
     CASE WHEN homegoal < awaygoal THEN 3 
      WHEN homegoal = awaygoal THEN 1 
      ELSE 0 
     END 
     FROM results 
     WHERE id_league = '$leagueid' 
      AND awaygoal IS NOT NULL 
      AND homegoal IS NOT NULL 
) AS tot 
JOIN clubs t ON tot.Team=t.id_clubs 
GROUP BY Team 
ORDER BY 
    SUM(Pts) desc, 
    SUM(GD) desc 

Надеюсь, кто-то может дать несколько советов или решение.

ответ

0

Если ваш вопрос о получении номера заказа из вашей итоговой таблицы, здесь подобное обсуждение, которое может быть именно то, что вам нужно: MySQL - Get row number on select

Чтобы выбрать первые n матчей, вы можете сделать LIMIT n после группировки по спичечному ид ,

+0

Моя цель - получить позицию каждой команды после каждого матча. Это пример для одной команды: Манчестер Сити: Тур 1: 1 тур 2: 3 туре 3: 3 тур 4: 7 и так далее. Моя цель - получить позиции 1,3,3,7, чтобы я мог сделать график, как показано на изображении в моем первом сообщении – EyemansDome

Смежные вопросы