如何在mysql中将一个表中的3列复制到另一个表中

时间:2014-03-24 22:46:35

标签: mysql database

我有两个表,两个表都包含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)

1 个答案:

答案 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