2017-02-04 1 views
0

Мой оператор выбора обнаруживает записи, которые я хочу обновить. Теперь я хочу инвертировать (умножить x -1) скорректированный_значный счет только для этих записей. Здесь оператор выбора:Sqlite- У меня есть выбор, как мне обновить эти записи?

Select players.name, fbposts.company, fbposts.post_id, reactions.reaction, 
fbposts_comments.adjusted_sentiment, fbposts_comments.message, fbposts.message from fbposts 
join reactions on reactions.post_id = fbposts.post_id 
join players on players.id = reactions.id 
join fbposts_comments on fbposts_comments.post_id = fbposts.post_id 
where adjusted_sentiment > 0 and reactions.reaction like "ANGRY" and 
reactions.id = fbposts_comments.comment_id group by fbposts.post_id 

Это возвращает записи, как:

Baktiyar Romanov,WorldOfWanderlust,387990201279405_994067924004960,ANGRY,0.5965,probably fed very ill-mannered rich man 
Sheridan Toms,australiapost,96085205666_10153485650690667,ANGRY,0.04676666666666666,Seriously? You can't even get an express post parcel from victoria to wa in under 2 weeks!!!! Super annoyed 
Robert Smissen,australiapost,96085205666_10153487649895667,ANGRY,0.8555,Looks like Australia Post is using Diggers' letters to gain some reflected glory 
Eve Ismaiel,australiapost,96085205666_10153500759100667,ANGRY,0.1133333333333333,"Ha ha... Present $20, postage $30!!!" 

То, что я хочу сделать, это инвертировать счет adjusted_sentiment. Например, в первой записи скорректированный счетчик составляет 0,5965. Я хочу обновить это значение до -0,5965

BTW мои запросы и обновления будут выполняться через Python2.7 ... Я думаю, что сейчас я работаю над созданием списка из вышеприведенного запроса используйте этот список, чтобы создать серию операторов обновления.

ответ

-1
Below query will give you the expected output 

update fbposts_comments set adjusted_sentiment = -adjusted_sentiment where post_id in (Select fbposts_comments.post_id from fbposts 
join reactions on reactions.post_id = fbposts.post_id 
join players on players.id = reactions.id 
join fbposts_comments on fbposts_comments.post_id = fbposts.post_id 
where adjusted_sentiment > 0 and reactions.reaction like "ANGRY" and 
reactions.id = fbposts_comments.comment_id group by fbposts.post_id) 
+0

Это не помогло. Я читал, что sqlite не может обновлять заявления о соединении. –

+0

вы можете поделиться своим примером sqlite-файла sqlite не поддерживает обновление соединений, но у меня есть вложенный подпроцесс, на котором я запускаю запрос на обновление –

+0

Я чувствую, что sqlite db слишком велик для совместного использования (350 МБ) и сценарий для создания таблицы слишком длинны, чтобы вписаться в окно комментариев. глядя на использование скрипта python для решения ... –

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

  • Нет связанных вопросов^_^