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

时间:2013-04-23 03:40:21

标签: mysql sql

当我尝试运行下面的查询时,我得到了#34;您无法指定目标表' list'用于FROM子句"

的更新

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

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

1 个答案:

答案 0 :(得分:2)

您收到此错误吗?

  

您无法在FROM子句

中为更新指定目标表'list'

这是因为如果您在另一个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