Mysql SQL查询更新语句语法错误
我需要运行SQL更新查询,如下所示Mysql SQL查询更新语句语法错误,mysql,Mysql,我需要运行SQL更新查询,如下所示 UPDATE table_1 SET field_1 = value_1 WHERE field_2 IN ( SELECT t1.field_2 FROM table_1 AS t1 ,table_2 AS t2 WHERE t2.field_3 = value_2 AND t1.field_2 = t2.field_2 ); 但问题是它的错误是
UPDATE table_1
SET field_1 = value_1
WHERE field_2 IN (
SELECT t1.field_2
FROM table_1 AS t1
,table_2 AS t2
WHERE t2.field_3 = value_2
AND t1.field_2 = t2.field_2
);
但问题是它的错误是什么样的-
无法在FROM子句中为update指定目标表“t1”
当我单独运行子查询并将其reslut放在主查询中时,就会得到结果。有人能帮忙吗
提前感谢正如错误所说,MySQL不能同时更新和选择同一个表。但是中间有另一个子查询,你无论如何都可以做
UPDATE table_1
SET field_1 = value_1
where field_2 in
(
select * from
(
SELECT t1.field_2
from table_1 as t1
join table_2 as t2 on t2.field_3 = value_2
and t1.field_2= t2.field_2
) tmp
)
你能解释一下附加子查询级别有什么意义吗?@juergen d,非常感谢,它工作起来很有魅力,但请解释一下附加子查询级别的用途是什么?用途是你用它创建一个临时表,而不需要直接从更新的表中选择。谢谢@juergend,太好了