在两个表之间复制列而不插入新行

时间:2019-03-14 05:28:00

标签: mysql

表1-列: ID, 日期

table2-列: ID, 日期, img, 验证, 主持人 标签, 访问

表1-1200行
table2-1000行

我想将缺失的列从table2复制到table1(img,auth,moder,tags,访问)。

无论值如何(这些都是测试数据,与某一行上的值无关)。

我首先尝试在table1中创建缺少的列,然后:

insert into table1 (img, auth, moder, tags, visits) select img, auth, moder, tags, visits from table2;

但是这会将新行插入到table1中。我不需要新行-只需添加具有table2中数据的新列即可。

2 个答案:

答案 0 :(得分:2)

看起来您想要的是一个 update ,而不是插入内容,因为您实际上并不希望添加新记录,只需修改已经存在的记录即可。

UPDATE table1 t1
INNER JOIN table2 t2
    ON t1.id = t2.id AND t1.date = t2.date
SET
    t1.img = t2.img,
    t1.auth = t2.auth,
    t1.moder = t2.moder,
    t1.tags = t2.tags,
    t1.visits = t2.visits;

答案 1 :(得分:1)

使用更新

update table1 
join table2 on table1.id=table2.id and table1.date=table2.date
set  tabl1.img=tabl2.img, table1.auth=table2.auth, table1.moder=table1.moder,
table1.tags=table2,tags, table1.visits=table2.visits