如何从mysql中的多个表更新列

时间:2013-02-15 07:52:58

标签: php mysql

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

例如:abcxyzabc表包含名为idfnamelastnamestatus的字段。表xyz包含idx_idstatus。现在我想要的是使用单个查询从abc statusxyz列更新列状态。

我尝试此查询,但它无效。

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;  

感谢。

2 个答案:

答案 0 :(得分:0)

编辑了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;

答案 1 :(得分:0)

如果您的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;

此致 奥马