Добавить числа из одного поля таблицы в другое? - PullRequest
0 голосов
/ 22 мая 2011

Я хочу знать, как я могу, например, добавить числа из одного поля таблицы в другое, у меня есть:

Table name = Game: 

opponent1(name of row) vs. opponent 2    -  score1 = 25 - score2 =  20

Я бы хотел, чтобы таблица "team" обновлялась автоматически следующим образом:

Table name = Teams: 

Opponent1: 

  Points in favor = 25
  Points against  = 20

Opponent 2: 

   Points in favor = 20
  Points against  = 25

Каким будет код для этого?Может ли это быть (имеет некоторый псевдокод):

  • Если оценка1 больше, чем оценка2
    • Добавить счет1 в поле "pointsfavor" в таблице "team" для противника1
    • Идобавьте $ score2 к "pointsagainst" в таблице "team" к противнику1

Может кто-нибудь помочь мне, пожалуйста?

1 Ответ

0 голосов
/ 22 мая 2011

Предполагая, что ваши таблицы имеют следующую структуру:

TABLE team
  id integer autoincrement primary key,
  name varchar,
  pointsfavor integer,
  pointscontra integer

TABLE game
  id integer autoincrement primary key,
  team1_id integer,
  team2_id integer,
  score1 integer, /*score for team1*/
  score2 integer /*score for team2*/

Ваш оператор обновления может выглядеть примерно так:

UPDATE team 
INNER JOIN game g1 ON (team.id = g1.team1_id)
INNER JOIN game g2 ON (team.id = g2.team2_id)
SET pointsfavor = pointsfavor 
      + IF(g1.score1 > g1.score2, g1.score1 - g1.score2, 0) 
      + IF(g2.score2 > g2.score1, g2.score2 - g2.score1, 0)
  , pointscontra = pointscontra 
      + IF(g1.score1 < g1.score2, g1.score2 - g1.score1, 0) 
      + IF(g2.score2 < g2.score1, g2.score1 - g2.score2, 0)
WHERE game.id = 10;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...