Php I';我试图更新一个表,并从不同的表中调用另一行

Php I';我试图更新一个表,并从不同的表中调用另一行,php,mysql,sql,insert-update,multiple-tables,Php,Mysql,Sql,Insert Update,Multiple Tables,当状态为3时,此查询仅更新csp表中的点。状态来自另一个表。我犯了一个错误。我在这里的编码哪里做错了 $sql_update_csp= "UPDATE csp SET ttlpoints = (ttlpoint+$point)" ; $sql_update_earn =$sql_update_csp."WHERE xid='$xid' AND status='3'" ; 其中column\u name将是用于连接两个表的列,如主键和外键 希望这能有所帮助。将“WHERE替换为“WHERE

当状态为3时,此查询仅更新
csp
表中的点。状态来自另一个表。我犯了一个错误。我在这里的编码哪里做错了

$sql_update_csp= "UPDATE csp SET ttlpoints = (ttlpoint+$point)" ;

$sql_update_earn =$sql_update_csp."WHERE xid='$xid' AND status='3'" ;
其中
column\u name
将是用于连接两个表的列,如主键和外键


希望这能有所帮助。

“WHERE
替换为
“WHERE
试试这个。问题是
status
列是否在csp表中?如果不是,您需要进行连接,然后状态列在earn\u act表中的何处?如果两列没有相同的行,我是否可以使用此代码?假设'xid'在csp表中,但不在b表中。仍然可以使用此代码吗?如果我想在此查询中设置一个条件,如状态必须为“3”,则仅执行ttlpoints+$points。但状态来自earn_act表。这是我现在掌握的密码。。。如果($row[`xid']!=''){$sql\u update\u csp=“update csp SET ttlpoints=(ttlpoints+$point),其中xid='$xid'';如何修复此问题在这种情况下它将不起作用,您可以首先检查earn_act表中的状态,然后使用just update the points in csp table。我假设您可以执行类似此查询的操作,从earn_act表中获取状态,如果(status==3){Your update Query}谢谢你,穆扎法尔先生。我想我会尽力做到的
UPDATE c SET c.ttlpoints = (c.ttlpoint+$point)
from csp c
left join earn_act ea
on c.column_name = ea.column_name
WHERE c.xid='$xid' AND ea.status='3'