我有 2 张桌子:
movies (id, votes)
info (id, movie_id, info_type, value)
我想用 info.value 填充 movies.votes,其中 movies.id = info.movie_id 和 info_type = 3(这是投票的信息类型)
我不知道该怎么做..(我正在使用 SQLite3.7)
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)
仅供参考,存在存在,因此如果电影没有info
数据,则不会更新为NULL
. 如果您希望这种情况发生,您可以将其删除。
看起来您想做一个 multi-table UPDATE
,这在其他数据库中很简单,但根据文档,您似乎无法在 sqlite 中执行这些操作。
在 mysql 中,你会做类似UPDATE movies JOIN info on (info.movie_id = movies.id) SET votes = info.value WHERE info.info_type = 3
. 我认为在 sqlite 中,您必须单独选择所有信息值并单独更新所有电影记录。