当我尝试运行以下查询时,出现“您无法在FROM子句中指定目标表’list’进行更新”
我知道实际上还有很多其他类似问题的答复,但是我对SQL的掌握并不强,无法从其他人的解决方案中重建它。
update list set li = '6' where li = '5 and dn in ( SELECT dn FROM list GROUP BY dn HAVING COUNT(*) < 2000 )
您收到此错误了吗?
您不能在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