我有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
答案 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;
除了使用连接语句
之外,这是另一种选择