我有2个表 - 一个Tune表和一个Artist表。 Tune包含一个曲调列表,每个曲调都有一个ArtistID。我想要做的就是为每个艺术家添加曲调,然后用这些值更新Artist表。我无法让我的SQL工作。
这是我到目前为止所做的:
UPDATE Artist
SET
TuneCount=c
FROM
(
SELECT ArtistID AS a, COUNT() AS c
FROM Tune
GROUP BY ArtistID
)
--WHERE _id=a
有人可以帮帮我吗? SQLite似乎不喜欢第一个FROM关键字。
答案 0 :(得分:3)
FROM不属于UPDATE查询。首先看一下这些非常有用的SQLite语法图,它们将引导您查询查询语句中可能出现的内容:
http://www.sqlite.org/syntaxdiagrams.html#update-stmt
看起来对我来说就像你要做的那样是将TuneCount改为该艺术家的曲调数量。
基本上我们要用您编写的嵌套查询替换更新查询中的“c”,如下所示:
UPDATE Artist
SET
TuneCount=(
SELECT COUNT(*)
FROM Tune t
WHERE t.ArtistID = Artist._id
)