-2

当我尝试运行下面的查询时,我得到“您不能在 FROM 子句中指定目标表 'list' 进行更新”

我知道实际上还有很多其他关于类似问题的回复,但我对 SQL 的掌握并不强,无法从其他人的解决方案中重建它。

update list
set li = '6'
where li = '5
   and dn in ( SELECT dn FROM list GROUP BY dn HAVING COUNT(*) < 2000 )
4

1 回答 1

2

你收到这个错误了吗?

您不能在 FROM 子句中指定目标表“列表”进行更新

这是因为如果您在另一个子选择语句中使用它,则无法直接更新该表。一种替代方法是将表与自身连接起来。

UPDATE  list a
        INNER JOIN
        (
            SELECT  dn 
            FROM    list 
            GROUP   BY dn 
            HAVING  COUNT(*) < 2000 
        ) b ON a.dn = b.dn
SET     a.li = '6'
WHERE   a.li = '5
于 2013-04-23T03:45:32.437 回答