2016-08-26 57 views
0

我試圖使用info_type_id在movieDataset表更新預算柱和movie_info從movie_info表列。以下是查詢:SQLite的查詢語法錯誤

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和數據庫瀏覽器來執行查詢

錯誤消息:

沒有這樣的列:movie_info.info

表關係:

它們具有相同的movie.id

表顧着

movieDataset(movie.id,預算)

movie_info(movie.id,info,movie_info_id)

謝謝

+0

顯示實際的錯誤信息,並表的定義,以及它們之間的關係。 –

+0

感謝CL的幫助。我編輯了我的問題以包含您的上述請求。 –

+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 
); 
+0

謝謝你CL幫助你的解決方案工作:) –