我有一张桌子,我在那里存储团队的结果。团队可以是id
或homeTeam
。我想检索aawayTeam
播放的最后5场比赛。
请看我的SQL小提琴http://sqlfiddle.com/#!9/701305/1
如果你看到结果,这里我试图得到team
的最后5个匹配状态
在第一行中,165是ateam id 165
,你可以看到homeTeam
,所以在这个例子中,我想返回homeTeamPoint(3)>awayTeamPoint(0)
,如果球队输了,那么它应该W
,如果相同的分数,那么L
所以我想有两种可能
输出:D
或
输出可以是多行。。
请帮帮我这对我来说太复杂了。
非常感谢。
最佳答案
您可以使用多个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
DB Fiddle DEMO