【发布时间】:2014-07-31 14:55:18
【问题描述】:
我有一个表,它使用具有典型左右列(trLeft 和 trRight)的嵌套集来表示一棵树。为了优化,我还在树中包含了行的级别,即它在树 ROOT 之前的父级数量。
在嵌套集中,A 行的父行是所有其他 B 行,其中 B.trLeft < A.trLeft AND B.trRight > A.trRight。
因此计算这些行将返回级别,从而导致以下更新查询开始,以便更新具有正确级别的所有行:
UPDATE Groups AS g1 SET g1.trLevel = (
SELECT COUNT(*) FROM Groups AS g2 WHERE g2.trLeft < g1.trLeft AND g2.trRight > g1.trRight ) ;
但这会导致错误 1093“您无法在 FROM 子句中指定目标表 'g1' 进行更新。
有没有办法解决这个问题?
【问题讨论】: