查询将部分信息从一个表复制到另一个表

时间:2011-08-22 07:15:51

标签: sql

我有2张桌子。第一个是商家,另一个是表1,它们都有列'id'和'name'(表1是excel导入并包含一些id和它们各自的名称,其中商家只有id和名字都是空白的。)

我想要做的是两个表中的id匹配的位置,将sheet1的名称写入商家名称。

我开始使用insert into,但是这只插入了所有id匹配的名称作为id为0的新行。所以我显然需要使用更新语句。但我无法使用类似的东西:

UPDATE merchents
SET name = sheet1.name
FROM sheet1
WHERE id=sheet.id

我想我可能需要一个内部联接,但我不确定,我的sql不是那么好。

UPDATE merchents
SET name = sheet1.name
FROM sheet1 s INNER JOIN merchents m
ON s.id = m.id

3 个答案:

答案 0 :(得分:1)

UPDATE m
SET m.name = s.name 
FROM sheet1 s INNER JOIN merchents m 
ON s.id = m.id 

答案 1 :(得分:0)

id应该是唯一或主键。试试这个INSERT

INSERT INTO merchents SELECT ... ON DUPLICATE KEY UPDATE merchents.name=sheet1.name

答案 2 :(得分:0)

Update merchents
Set merchents.name = sheet1.name
From sheet1, merchents
Where sheet1.id = merchents.id;

除了使用连接语句

之外,这是另一种选择