Php 如何在mysql中从多个表更新列

Php 如何在mysql中从多个表更新列,php,mysql,Php,Mysql,大家好,我想更新两个表中的列 例如:abc和xyz。abc表包含名为id、fname、lastname、status的字段。表xyz包含id、x_id和状态。现在我想要的是使用单个查询从abc更新列状态,从xyz更新列状态 我尝试了这个查询,但它不起作用 UPDATE abc a1 JOIN xyz x1 ON a1.id = x1.x_id SET a1.status = "D" , x1.status = "delete" WHERE a1.id = 15 AND x1.x_

大家好,我想更新两个表中的列

例如:
abc
xyz
abc
表包含名为
id
fname
lastname
status
的字段。表
xyz
包含
id
x_id
状态
。现在我想要的是使用单个查询从
abc
更新列状态,从
xyz
更新列状态

我尝试了这个查询,但它不起作用

UPDATE abc a1 
JOIN xyz x1 ON a1.id = x1.x_id 
SET a1.status = "D" , 
    x1.status = "delete" 
WHERE a1.id = 15 AND x1.x_id = 15;  
谢谢。

为3个表格编辑:

UPDATE a1,x1,s1 
SET a1.status = "D" , 
x1.status = "delte",
s1.status = "D" 
WHERE a1.id = x1.x_id
AND a1.id = s1.s_id 
AND a1.id = 15;

如果您的mysql服务器无法使用SQL在一个查询中更新两个表。 您可以使用LOCK TABLES命令来避免竞争条件:

LOCK TABLES abc WRITE, xyz WRITE;
update abc set status = "D"  where id = 15;
update xyz set status = "delete"  where x_id = 15;
UNLOCK TABLES;
问候,,
Omar

检查:和+1用于链接到相关链接Shey Bojan我们可以用3个表来完成吗?应该使用相同的语法(ofc和WHERE语句中表之间的所有连接)。假设我添加了一个名为srk的新表,其中包含字段id、s_id和状态,那么我如何在WHERE子句中查找公共字段更新a1、x1、S1设置a1.status=“D”,x1.status=“delte”,S.status='D',其中a1.id=x1.x_id,a1.id=15,x1.x_id=15;什么是S_id?什么表的外键?