我有一张表格,在其中储存球队的成绩。团队id
可以是homeTeam
或awayTeam
。我想检索一个team
进行的最近5场比赛。
请参阅我的SQL提琴http://sqlfiddle.com/#!9/701305/1
如果您看到结果,那么我在这里尝试获取team id 165
的最后5个匹配统计信息
在第一行中,165是homeTeam
,您会看到homeTeamPoint(3)>awayTeamPoint(0)
,因此在这种情况下,如果球队输了比赛,我想同样地返回W
,那么{{1} },如果有相同点,则L
所以我希望可以采用两种方式
输出:D
要么
输出可以是多行。
请帮助我,这对我来说太复杂了。
非常感谢您。
答案 0 :(得分:1)
您可以使用多个CASE .. WHEN
语句从team_id = 65
的角度获得结果。
SELECT
homeTeam,
awayTeam,
homeTeamPoint,
awayTeamPoint,
CASE
WHEN homeTeamPoint = awayTeamPoint
THEN 'D'
WHEN `homeTeam` = 165 AND homeTeamPoint > awayTeamPoint
THEN 'W'
WHEN `homeTeam` = 165 AND homeTeamPoint < awayTeamPoint
THEN 'L'
WHEN `awayTeam` = 165 AND homeTeamPoint < awayTeamPoint
THEN 'W'
WHEN `awayTeam` = 165 AND homeTeamPoint > awayTeamPoint
THEN 'L'
END AS result
FROM fixtureandresults
WHERE (`homeTeam` = 165 OR awayTeam=165)
AND over = 1
ORDER BY id DESC LIMIT 5