首页 > 解决方案 > 更新子查询错误你不能指定目标表

问题描述

我有一个包含两个表(URL 和 VOTE)的数据库。我需要计算 VOTE 中的所有选票并将结果包含在 URL 表中我尝试按如下方式进行操作,但它给了我错误 ** You can't specify target table 'url' for update in FROM 子句**

UPDATE url
set up = (select (SELECT COUNT(*) FROM vote v WHERE v.id = u.id AND v.note = 1 ) as num from url u)

你怎么能这样?

标签: mysqlsql

解决方案


我想你只想要一个简单的子查询:

UPDATE url u
    SET up = (SELECT COUNT(*)
              FROM vote v
              WHERE v.id = u.id AND v.note = 1
             ) ;

我不确定您为什么要url在子查询中引用。


推荐阅读