使用选择查询更新表

时间:2018-08-23 03:30:46

标签: sql-update mariadb

所以我在这里读了一些帖子,但是我似乎无法在MySQL上使用它。

我有一个带有项ID的记录“计数”,我想根据该项ID更新到我的[项]表中。[人气]。

这是我尝试过的:

Update items
SET items.popularity = countitems.countofscriptiD
FROM items
INNER JOIN
(SELECT Count(scripts.ScriptID) AS CountOfScriptID, scripts.ItemID
FROM scripts GROUP BY scripts.ItemID) as countitems
ON
items.itemid =  countitems.itemid

哪个返回MySQL错误:

  

1064-您的SQL语法有错误;检查与您的MariaDB服务器版本相对应的手册以使用正确的语法

     

'FROM项目附近INNER JOIN(SELECT Count(scripts.ScriptID)AS   CountOfScriptID,在第3行抄写

如果我将其更改为SELECT查询,则可以正常运行,无论是从[items]中选择还是从count查询中进行选择,但是update语句失败了!

任何建议都是很棒的,从我读过的书中我看不出我在哪里出错了。

1 个答案:

答案 0 :(得分:2)

执行此操作的正确方法,即在SET之后进行表的联接:

UPDATE items
INNER JOIN
(SELECT Count(scripts.ScriptID) AS CountOfScriptID, scripts.ItemID
FROM scripts GROUP BY scripts.ItemID) as countitems
ON
items.itemid =  countitems.itemid
SET items.popularity = countitems.countofscriptiD

请参见https://dev.mysql.com/doc/refman/8.0/en/update.html