我有两张桌子:
movies (id, votes)
info (id, movie_id, info_type, value)
我想用info.value填充movies.votes,其中movies.id = info.movie_id和info_type = 3(这是投票的信息类型)
我无法弄明白该怎么做..(我正在使用SQLite3.7)
答案 0 :(得分:1)
UPDATE movies
SET votes = (select value
from info
where info.movie_id=movies.id and info_type=3)
WHERE EXISTS
(select *
from info
where info.movie_id=movies.id and info_type=3)
仅供参考EXISTS,如果电影没有info
数据,那么这些数据不会更新为NULL
。如果您希望这样做,可以将其删除。
答案 1 :(得分:0)
看起来你想要做一个多表UPDATE
,这在其他数据库中很简单,但根据the documentation看起来你不能在sqlite中做那些。
在mysql中,你会做UPDATE movies JOIN info on (info.movie_id = movies.id) SET votes = info.value WHERE info.info_type = 3
之类的事情。我认为在sqlite中你必须单独选择所有的信息值并单独更新所有的电影记录。