MySQL сложный запрос условного выбора - PullRequest
0 голосов
/ 16 октября 2018

У меня есть таблица, где я храню результаты команд.Команда id может быть homeTeam или awayTeam.Я хочу получить последние 5 матчей, которые сыграл team.

Пожалуйста, посмотрите мою скрипту SQL http://sqlfiddle.com/#!9/701305/1

enter image description here

Если вы видите результат, здесь я пытаюсь получить последние 5соответствует статистике team id 165

В первом ряду 165 - это homeTeam, и вы можете увидеть homeTeamPoint(3)>awayTeamPoint(0), поэтому в этом случае я хочу вернуть W аналогично, если команда проиграет, тогда она должна L и если те же самые точки, то D

Таким образом, ожидаемый результат может быть двумя способами

Выходным положением: W,L,W,W,L или Выходным положением может быть несколько строк ..

Пожалуйста, помогите мне, это слишком сложно для меня.

Большое вам спасибо.

1 Ответ

0 голосов
/ 16 октября 2018

Вы можете использовать несколько 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Скрипка ДЕМО

...