我被困在这个查询上:我想更新临时表#tmpHierarchy 中的每一行并设置 pLevel = 3,如果该行尚未设置级别(= 99)并且其中一个 [可能] 父项包含在临时表,级别 = 2。
表 items 包含所有项目,表 ParentItems 包含 Items 之间的链接(字段 Item、ParentItem)
就像是:
UPDATE #tmpHierarchy SET pLevel = 3 WHERE pLevel = 99
AND (
(
SELECT Item FROM Items as IT LEFT JOIN ParentItems as PTS ON PTS.ItemID = IT.ID
WHERE IT.ID = #tmpHierarchy.ItemID
)
IN
(
SELECT Item FROM #tmpHierarchy WHERE pLevel = 2
)
)
这将是我想要实现的目标,但它会返回
Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.
The statement has been terminated.
...由于显而易见的原因,我在 IN 子句 (?) 中有多个值。
我很高兴得到一些关于这个问题的建议。
问候,
橡木