小编典典

MySQL:您无法在FROM子句中指定要更新的目标表

sql

当我尝试运行以下查询时,出现“您无法在FROM子句中指定目标表’list’进行更新”

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

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

阅读 232

收藏
2021-05-16

共1个答案

小编典典

您收到此错误了吗?

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

这是因为如果在另一个subselect语句上使用表,则无法直接更新该表。一种替代方法是将表与其自身连接。

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
2021-05-16