MySQL从表中查询数据更新本表失败
项目中有一个表是树形结构,并且准备把某一个节点的属性复制到下面的每个子节点。写好了 update 脚本,执行却报错了。
1093 - Table 'a' is specified twice, both as a target for 'UPDATE' and as a separate source for data
1
脚本大概长这样
update t_menu a set path = (select path from t_menu where id = a.parent_id )
1
在 stackoverflow 找到了答案,
简单点说就是再用一次子查询。将 SQL 改造成如下
update t_menu a set path = (select b.path from (select path from t_menu ) b where b.id = a.parent_id )
1
上次更新: 2022/10/09, 14:18:05