我有两个表,两个表都包含2列,确定性和善意,并且它们通过dataitemID和id相互关联。只是为了向您展示我将从数据库中选择2个选项的结构:
SELECT ID,sureness,kindness FROM omid.tweet ;
SELECT ID,DataitemID,sureness,kindness FROM omid.entity_epoch_data ;
我希望将omid.tweet中的所有值的确定性和善意复制到entity_epoch_data中,其中entity_epoch_data.entityID等于来自entity_relation的entityID,其中tweet.ID = entity_relation.ID
我想在mysql中执行它而不是在java中读取整个表并在循环中更新数据库但是我很困惑。我怎么能这样做?我感谢任何帮助:)
更新
我编写的代码如下,但它不起作用:
update tweet, entity_epoch_data
set entity_epoch_data.sureness= tweet.sureness,
entity_epoch_data.kindness = tweet.kindness ,
entity_epoch_data.calmness = tweet.calmness ,
entity_epoch_data.happiness = tweet.happiness
WHERE entity_epoch_data.EntityID in(
SELECT EntityID FROM omid.entity_dataitem_relation
INNER JOIN omid.tweet t ON entity_dataitem_relation.DataitemID = t.ID)
答案 0 :(得分:2)
实际上非常直接。 UPDATE子句的作用类似于JOIN,然后使用SET来设置值
UPDATE tweet INNER JOIN entity_epoch_data
ON tweet.id = entity_epoch_data.id
SET entity_epoch_data.sureness= tweet.sureness,
entity_epoch_data.kindness = tweet.kindness