Php 更新leftjoin集+/-问题

Php 更新leftjoin集+/-问题,php,mysql,Php,Mysql,我想根据表中输入的一个数字进行加减 这是我的密码: $uratio = " UPDATE teams LEFT JOIN games g1 ON (teams.ID = g1.op1ID) SET ratio = ratio + IF(g1.op1gamescore = 1 , g1.op1score, g1.op1score) , ratio = ratio - IF(g1.op1gamescore = 0, g1.op1score, g1.op

我想根据表中输入的一个数字进行加减

这是我的密码:

  $uratio =  " 

    UPDATE teams
 LEFT JOIN games g1 ON (teams.ID = g1.op1ID)

SET ratio = ratio 
    + IF(g1.op1gamescore = 1 , g1.op1score, g1.op1score) 
 , ratio = ratio 
     - IF(g1.op1gamescore = 0, g1.op1score, g1.op1score) 

  WHERE g1.ID = '$_POST[id]'    ;   

     ";
      mysql_query($uratio) or die (mysql_error());


     $uratiob =  " 

    UPDATE teams 
    LEFT JOIN games g2 ON (teams.ID = g2.op2ID)
   SET ratio = ratio 
    + IF(g2.op2gamescore = 1, g2.op2score, g2.op2score) 
             , ratio = ratio 
    - IF(g2.op2gamescore = 0, g2.op2score, g2.op2score) 
   WHERE g2.ID = '$_POST[id]'    ;   

    ";
      mysql_query($uratiob) or die (mysql_error());   
当op2gamescore=1时,它将op1与负号放在一起,而op2与负号放在一起,op2可以,但op1不能

当op1gamescore=1时,它也会这样做

当op1或op2=0时,它会纠正数学错误。但当它等于1时就不是了

它的数学正确,但op1总是以负号结尾,为什么?就像它执行-if和not+if。。。有什么想法吗

查询1:

UPDATE 
  teams 
LEFT JOIN 
  games 
ON
  teams.ID = games.op1ID
SET
  ratio = ratio + IF(games.op1gamescore = 1, games.op1score, -1 * games.op1score)
问题2:

UPDATE 
  teams 
LEFT JOIN 
  games 
ON
  teams.ID = games.op2ID
SET
  ratio = ratio + IF(games.op2gamescore = 1, games.op2score, -1 * games.op2score)

你不明白IF是怎么工作的。它有3个参数,第一个是条件,第二个是条件为真时返回的值,第三个是条件为假时返回的值。无论条件是真是假,你都会返回相同的值,所以你基本上只是在不考虑条件的情况下加上分数并减去分数。非常感谢。现在可以用了!我仍然使用相同的代码,但使用了-1*来更改假条件OK,但是没有必要在每个查询中设置两次比率。仔细考虑一下。