有人可以帮我解决这个'简单'的问题。
我有两张桌子:Tunes和SavedRatings
Tunes包含一系列调谐信息,包括Rating(INTEGER)字段和用于唯一标识曲调的MD5字段。
SavedRatings是一个由评级和MD5字段组成的表,这样当我删除Tunes的内容并在以后添加音乐时,我可以识别给该曲调的评级。
所以..我想要做的是通过匹配SavedRatings表中的Tunes MD5字段来更新我的Tunes表中的Rating字段。
我想出了下面的命令,这是完全错误的。你能建议一个替代方案吗?我正在使用SQLite。
UPDATE Tunes
SET Tunes.Rating=SavedRatings.Rating
WHERE Tunes.MD5 IN (SELECT MD5 FROM SavedRatings);
答案 0 :(得分:2)
UPDATE T
SET T.Rating = S.Rating
FROM Tunes T INNER JOIN SavedRatings S
ON T.MD5 = S.MD5
答案 1 :(得分:1)
您可以执行类似
的操作UPDATE Tunes
SET Tunes.Rating = SavedRatings.Rating
FROM SavedRatings
WHERE Tunes.MD5 = SavedRatings.MD5;
答案 2 :(得分:1)
试试吧
update Tunes set Rating = ( select SavedRating.Rating from SavedRating where Tunes.md5 = SavedRating.md5)
希望这有帮助!
答案 3 :(得分:0)
这有效..我怀疑它不是最佳的,但现在必须要做,直到我能得到更好的解决方案:
UPDATE Tunes
SET Rating = ( SELECT Rating FROM SavedRatings WHERE MD5=Tunes.MD5 LIMIT 1 )
WHERE EXISTS ( SELECT Rating FROM SavedRatings WHERE MD5=Tunes.MD5 LIMIT 1 );