Несколько объединений в одном запросе - PullRequest
0 голосов
/ 21 мая 2018

Написание кодов для футбольной фэнтезийной лиги.Имеют две таблицы

  1. Player_details

    Столбцы - ID,PLAYER_NAME,POINTS

  2. USERS

    Столбцы - id,palyer1,player2,player3,........Player11,

Пользователи создают учетные записи, выбирая 11 игроков в команде.Общее количество команд - это сумма очков, заработанная игроками из таблицы сведений об игроках.

Я хочу получить сумму для каждого пользователя.Позвольте мне привести пример:

USER       player1    player2   player3  Player4 ... ..... ...Player11  Total 

User1        a         b          c        d                      j
user2        d         a          e        b                      k

.,.

a, b, c .... - имена игроков из таблицы игроков.Теперь в итоговом столбце я хочу получить сумму очков, набранных игроком a, b, c, d, ... j для пользователя1.

и то же самое для user2, user3, user4.

Любая помощь будет оценена.

1 Ответ

0 голосов
/ 21 мая 2018

Это, вероятно, будет делать то, что вы хотите.Обратите внимание, что из-за структуры вашего стола вы должны сделать соединение для каждого игрока в команде.Как было отмечено в комментариях, вы должны изучить нормализация .

SELECT u.id AS User,
  p1.PLAYER_NAME AS Player1,
  p2.PLAYER_NAME AS Player2,
  p3.PLAYER_NAME AS Player3,
  p4.PLAYER_NAME AS Player4,
  p5.PLAYER_NAME AS Player5,
  p6.PLAYER_NAME AS Player6,
  p7.PLAYER_NAME AS Player7,
  p8.PLAYER_NAME AS Player8,
  p9.PLAYER_NAME AS Player9,
  p10.PLAYER_NAME AS Player10,
  p11.PLAYER_NAME AS Player11,
  p1.POINTS + p2.POINTS + p3.POINTS + p4.POINTS + p5.POINTS + p6.POINTS + p7.POINTS + p8.POINTS + p9.POINTS + p10.POINTS + p11.POINTS AS Total
FROM USERS u
JOIN Player_details p1 ON p1.ID = u.player1
JOIN Player_details p2 ON p2.ID = u.player2
JOIN Player_details p3 ON p3.ID = u.player3
JOIN Player_details p4 ON p4.ID = u.player4
JOIN Player_details p5 ON p5.ID = u.player5
JOIN Player_details p6 ON p6.ID = u.player6
JOIN Player_details p7 ON p7.ID = u.player7
JOIN Player_details p8 ON p8.ID = u.player8
JOIN Player_details p9 ON p9.ID = u.player9
JOIN Player_details p10 ON p10.ID = u.player10
JOIN Player_details p11 ON p11.ID = u.player11
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...