MySQL 复杂条件 select 查询

MySQL complex conditional select query

我有一个 table 存储团队结果的地方。一个团队 id 可以是 homeTeamawayTeam。我想检索 team 参加的最后 5 场比赛。

请看我的SQLfiddlehttp://sqlfiddle.com/#!9/701305/1

如果你看到结果,这里我正在尝试获取 team id 165

的最后 5 场比赛统计数据

在第一行,165 是 homeTeam 你可以看到 homeTeamPoint(3)>awayTeamPoint(0) 所以在这种情况下我想 return W 同样如果球队输了它应该 L 如果相同点则 D

所以我期待的输出可以有两种方式

输出:W,L,W,W,L 要么 输出可以是多行..

请帮助我,这对我来说太复杂了。

非常感谢。

您可以使用多个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