MySQL。两个表,复制一列
我正在学习MySQL,我有一个问题。我有两张桌子。。表1和表2。 表1包含多个列,如(id、type、id\u marca、price)等,表2包含多个列,如(id、value、…、id\u marca)。 我想要的和我正在尝试的是: 第一个表中的id_marca有值,第二个表中的id_marca有空值。 我想将id_marca.table1中的值复制到id_marca.table2中。基本上将第一个表中的列复制到第二个表中 我曾经MySQL。两个表,复制一列,mysql,sql,database,Mysql,Sql,Database,我正在学习MySQL,我有一个问题。我有两张桌子。。表1和表2。 表1包含多个列,如(id、type、id\u marca、price)等,表2包含多个列,如(id、value、…、id\u marca)。 我想要的和我正在尝试的是: 第一个表中的id_marca有值,第二个表中的id_marca有空值。 我想将id_marca.table1中的值复制到id_marca.table2中。基本上将第一个表中的列复制到第二个表中 我曾经 INSERT INTO table2 (id_marca) S
INSERT INTO table2 (id_marca) SELECT id_marca FROM table1 ;
但问题是。。它在空值之后插入第一个表中列的值,并且不替换它们
为了更好地看待这个问题:
这是表1:
id name id_marca
1 a 1
2 b 1
3 c 2
这是表2:
id value id_marca
1 123 NULL
2 34155 NULL
3 123 NULL
在我执行INSERT INTO table2(id_marca)后,从表1中选择id_marca,表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
希望您能理解,提前谢谢各位。您应该使用UPDATE not INSERT,如果这些表通过ID字段进行逻辑链接,请尝试:
UPDATE TABLE2 a
JOIN TABLE1 b ON a.id = b.id
SET a.id_marca = b.id_marca
上下文
- MySQL V5.7
- 用户希望使用
INSERT
- 目标是将之前的更改为之后的
- 这可以使用MySQL
INSERT ON DUPLICATE KEY UPDATE
- 此方法将插入新记录,并且还将更新具有匹配ID的现有记录
INSERT INTO zzdemo_table02
(lname,userid)
SELECT
lname,userid
FROM(
SELECT
lname,userid
FROM
zzdemo_table01
) as tt01
ON DUPLICATE KEY UPDATE
userid=tt01.userid
,lname=tt01.lname
;