在MySQL中将列从表复制到另一个

时间:2011-09-13 13:23:50

标签: mysql sql copy sql-update

我正在尝试将包含数据的列复制到MySQL中的另一个表中。但我无法绕过它。两个表都有一个名为'nid'的id列,非常适合。

我想将名为'field_pref_position_value'的列从表'content_field_pref_position'移到表'content_type_player'中的'pref_position'列。我已经将列'pref_position'。

任何帮助都非常感激。

编辑:我犯了一个大错。我将列复制到表'content_type_player'而不是'content_type_transfer',它应该是,但现在当我尝试对content_type_transfer使用相同的查询时,它只返回'0行受影响。 (查询花了0.0015秒)'而不更新列。无法弄清楚这笔交易是什么?

我正在使用此查询:

UPDATE content_type_transfer 
JOIN content_field_pref_position 
    ON content_field_pref_position.nid = content_type_transfer.nid 
SET content_type_transfer.pref_position 
    = content_field_pref_position.field_pref_position_value

3 个答案:

答案 0 :(得分:0)

我认为你刚刚两次命名同一个表:

UPDATE 
 content_type_player 
SET 
 content_type_player.pref_position = content_field_pref_position.field_pref_position_value 
FROM 
 content_field_**player**
JOIN 
 content_field_pref_position ON content_type_player.nid = content_field_pref_position.nid 

答案 1 :(得分:-1)

正如@heximal

所建议的那样
UPDATE
 content_type_player
SET
  b.pref_position = a.field_pref_position_value
FROM
 content_field_pref_position a
 content_type_player b 
WHERE
 a.nid = b.nid

答案 2 :(得分:-1)

根据Nielsiano的建议

UPDATE content_type_player JOIN content_field_pref_position ON content_field_pref_position.nid = content_type_player.nid SET content_type_player.pref_position = content_field_pref_position.field_pref_position_value