Sqlite查询语法错误

时间:2016-08-26 16:48:50

标签: sqlite

我正在尝试使用movie_info表中的 info_type_id和movie_info列更新 movieDataset 表中的预算列。以下是查询:

UPDATE movieDataset
SET budget=REPLACE(movie_info.info,',','')
WHERE movieDataset.movie_id IN (
SELECT movie_info.movie_id
FROM movie_info
WHERE movie_info.info_type_id=105
)

数据: info_type_id 105的相应信息是$ 40,000 / $ 17,000等。

期望的输出:

预算栏应该有,$ 40000 / $ 17000等

我正在使用sqlite3和DB Browser来执行查询

错误讯息:

没有这样的专栏:movie_info.info

表关系:

他们有相同的movie.id

表格定义:

movieDataset(movie.id,预算)

movie_info(movie.id,info,movie_info_id)

谢谢

1 个答案:

答案 0 :(得分:0)

在外部查询中,movie_info表不可见。要从该表中获取值,您必须使用correlated subquery

进行查询
UPDATE movieDataset
SET budget = replace((SELECT info
                      FROM movie_info
                      WHERE movie_id = movieDataset.movie_id
                        AND info_type_id = 105
                     ), ',', '')
WHERE movie_id IN (
    SELECT movie_id
    FROM movie_info
    WHERE info_type_id = 105
);