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?什么表的外键?