0

我有 2 张桌子:

movies (id, votes)
info (id, movie_id, info_type, value)

我想用 info.value 填充 movies.votes,其中 movies.id = info.movi​​e_id 和 info_type = 3(这是投票的信息类型)

我不知道该怎么做..(我正在使用 SQLite3.7)

4

2 回答 2

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)

仅供参考,存在存在,因此如果电影没有info数据,则不会更新为NULL. 如果您希望这种情况发生,您可以将其删除。

于 2012-10-03T02:19:47.120 回答
0

看起来您想做一个 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 中,您必须单独选择所有信息值并单独更新所有电影记录。

于 2012-10-03T02:20:14.050 回答