问题
先查出A表的字段然后在对A表中的字段进行更改会报错
update A
set area_id = (select id from B where name like '%xxx%')
where id in
(select id from A where address_detail like '%xxx%');
You can't specify target table 'x_customer' for update in FROM clause
无法在FROM子句中为更新指定目标表“x_customer”
解决
用随便一个中间表过度一下
update A
set area_id = (select id from B where name like '%xxx%')
where id in
(select id from
(select id from A where address_detail like '%xxx%')
B );
我这里是用B给他包了一下,用什么都可以!!!
希望能够帮到大家!!!

当尝试在SQL更新语句中直接引用目标表时,会出现错误:'You can't specify target table 'x_customer' for update in FROM clause'。为了解决这个问题,可以使用中间表来过渡。例如,将查询包装在一个子查询中,使得更新操作能够正确执行。这种方法避免了直接在FROM子句中更新目标表,确保了SQL语句的合法性。
8393

被折叠的 条评论
为什么被折叠?



