MySQL的。两个表,复制一列

时间:2014-05-15 09:03:05

标签: mysql sql database

我正在学习MySQL,我有一个问题。我有两个表.. table1和table2。 table1包含几个列,如(id,type,id_marca,price)等,table2有几列,如(id,values,..,id_marca)。 我想要的和我想做的是: 第一个表中的id_marca具有值,第二个表中的id_marca具有NULL值。 我想将id_marca.table1中的值复制到id_marca.table2中。基本上将第一个表中的列复制到第二个表中。

我用过

INSERT INTO table2 (id_marca) SELECT  id_marca  FROM table1 ;

但问题是以下..它在NULL值之后插入第一个表中的列的值,并且不替换它们。

更好地看待问题: 这是table1:

id    name    id_marca
1      a         1
2      b         1 
3      c         2

这是table2:

id   value   id_marca
1      123         NULL
2      34155       NULL
3      123         NULL

执行INSERT INTO table2(id_marca)SELECT id_marca FROM table1后,表2变为:

id   value   id_marca
1      123         NULL
2      34155       NULL
3      123         NULL
4       0            1
5       0            1
6       0            2

但我希望它是:

id   value   id_marca
1      123         1
2      34155       1
3      123         2

希望你能理解,先谢谢你们。

2 个答案:

答案 0 :(得分:3)

你应该使用UPDATE而不是INSERT,如果这些表按ID字段逻辑链接,那么试试:

UPDATE TABLE2 a 
    JOIN TABLE1 b ON a.id = b.id
SET a.id_marca = b.id_marca

答案 1 :(得分:0)

上下文

  • MySQL v 5.7
  • 用户希望使用__set__将表列复制到另一表中
  • 目标是将之前更改为之后

enter image description here

解决方案

  • 这可以使用MySQL __delete__
  • 完成
  • 此方法将插入新记录,还将更新具有匹配ID的现有记录

示例

__getattr__

另请参见

相关问题