В футбольной среде я хочу отображать текущее положение. Значение: очки и голы за команду. Соответствующие таблицы выглядят аналогично следующему (упрощенно).
Таблица совпадений
uid (PK) hometeamid roadteamid
------------------------------------------------------------------
Таблица результатов
uid (PK) hometeamscore roadteamscore resulttype (45min, 90min, ..)
-------------------------------------------------------------------
Team Table
uid (PK) name shortname icon
------------------------------------------------------------------
Теперь я не могу понять, как записать результаты в одном запросе. Мне удалось написать запрос, который возвращает только «домашние игры». Я думаю, это самая легкая часть. В любом случае вот как это выглядит:
SELECT ht.name,
Count(*) As matches,
SUM(res.hometeamscore) AS goals,
SUM(res.roadteamscore) AS opponentgoals,
SUM(res.hometeamscore - res.roadteamscore) AS goalDifference,
SUM(res.hometeamscore > res.roadteamscore) * 3 + SUM(res.hometeamscore = res.roadteamscore) As Points
FROM league_league l
JOIN league_gameday gd
ON gd.leagueid = l.uid
JOIN league_match m
ON m.gamedayid = gd.uid
JOIN league_result res
ON res.matchid = m.uid
AND res.resulttype = 2
JOIN league_team ht
ON m.hometeamid = ht.uid
Where l.uid = 1
Group By ht.uid
Order By points DESC, goalDifference DESC
Любая идея, как изменить это, что он вернется домой - и роудгеймы, будет очень цениться.
Большое спасибо,
Robin