2016-08-26 5 views
0

Я пытаюсь обновить бюджет столбца в movieDataset таблицы с использованием info_type_id и 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 $/$ 17000 и т.д.

Желаемый результат:

бюджет столбец должен иметь, $ 40000/$ 17000 и т.д.

Я использую sqlite3 и DB Browser для выполнения запроса

Сообщение об ошибке:

Нет такой столбец: не movie_info.info

Таблицы отношений:

Они имеют тот же movie.id

Столы Defintion:

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 за вашу помощь, с которой ваше решение работало :) –

Смежные вопросы