Php 如果另一个表中的值相等,则更新一个表

Php 如果另一个表中的值相等,则更新一个表,php,mysql,Php,Mysql,这一次我可能试图达到过高的水平,但我希望这能实现。我有一张名为liga的桌子,如下所示: uid | name | games | points | ___________________________________ 1 | Daniel | 0 | 0 | 2 | Mikkel | 0 | 0 | uid | k1 | k1r | k2 | k2r | week | _____

这一次我可能试图达到过高的水平,但我希望这能实现。我有一张名为liga的桌子,如下所示:

uid  |  name  |  games  |  points  |
___________________________________
1    | Daniel |    0    |    0     |
2    | Mikkel |    0    |    0     |
uid  |  k1    |  k1r    |  k2   |  k2r   |  week  |
__________________________________________________
1    |  1     |  2-1    |  X    |  2-2   |  14    |
2    |  2     |  1-1    |  1    |  2-1   |  14    |
其中uid是用户id的缩写。 然后我有一个名为kamp2的表,如下所示:

uid  |  name  |  games  |  points  |
___________________________________
1    | Daniel |    0    |    0     |
2    | Mikkel |    0    |    0     |
uid  |  k1    |  k1r    |  k2   |  k2r   |  week  |
__________________________________________________
1    |  1     |  2-1    |  X    |  2-2   |  14    |
2    |  2     |  1-1    |  1    |  2-1   |  14    |
这些数据由附加到uid的用户提交。 现在,我想要的是一个表格,在这里我写下足球比赛的结果,比如:

<input type="text" name="k1">... and so on...
If (k1 == 1 AND k1r == 2-1) UPDATE liga SET point = point + 5 WHERE uid = $uid;
else if 
(k1r == 2-1 AND k1 != 1) UPDATE liga SET point = point + 3 WHERE uid = $uid ;
else if 
(k1 == 1 AND k1r != 2-1) UPDATE liga SET point = point + 1 WHERE uid = $uid ;
但这怎么可能呢?我应该先选择kamp2表,然后使用它,或者连接两个表,或者如何连接? 如果这个问题太大而无法回答,请告诉我:我不想让你给我确切的代码,只是为了指导我:
希望没事

您也不能在相同的条件下更新相同的记录

您需要使用子查询来更新它

更新数据表t,选择不同的ID、名称、值 从数据表 其中VALUE不为NULL,VALUE!=t1设置t.VALUE=t1.VALUE,其中t.ID=t1.ID,t.NAME=t1.NAME


您也不能使用该条件更新同一记录

您需要使用子查询来更新它

更新数据表t,选择不同的ID、名称、值 从数据表 其中VALUE不为NULL,VALUE!=t1设置t.VALUE=t1.VALUE,其中t.ID=t1.ID,t.NAME=t1.NAME


您可以使用触发器的概念来完成此任务:

您必须在kamp2表上创建更新/插入后触发器,并在该触发器中更新liga表


或者通过后端php脚本处理此问题。

您可以使用触发器的概念来完成此任务:

您必须在kamp2表上创建更新/插入后触发器,并在该触发器中更新liga表


或者通过后端php脚本处理此问题。

您可以将表连接在一起,然后使用CASE逻辑进行更新:


您可以将这些表连接在一起,然后使用案例逻辑进行更新:


为什么我们不能在更新查询中使用联接?我们可以用连接和case语句解决这个问题是的,@Gordon Linoff使用连接和case给出了很好的解决方案,,,对不起,我的错误编辑了答案以避免任何错误信息。为什么我们不能在更新查询中使用连接?我们可以用join和case statement解决这个问题是的,@Gordon Linoff使用join和case给出了一个很好的解决方案,,,对不起,我的错误编辑了答案以避免任何错误信息。我一回到家就会尝试:如何确保它选择本周的kamp2表?下周“周”列将为15,因此我必须确保,它在案例中使用了“周”行?@DanielJensen。如果您还有其他问题,请将其作为新问题而不是在评论中提出。明白了!:非常感谢。我一回到家就会试试这个:我如何确保它选择本周在kamp2表中?下周“周”列将为15,因此我必须确保,它在案例中使用了“周”行?@DanielJensen。如果您还有其他问题,请将其作为新问题而不是在评论中提出。明白了!:非常感谢。