我有一张桌子,我在那里存储团队的结果。团队可以是idhomeTeam。我想检索aawayTeam播放的最后5场比赛。
请看我的SQL小提琴http://sqlfiddle.com/#!9/701305/1
mysql - MySQL复杂条件选择查询-LMLPHP
如果你看到结果,这里我试图得到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

10-07 16:00