有人能帮我做以下事情吗?我有两个表,需要用表2中的数据更新表1,如下例所示表1:id-名称-引擎id1-x-空表2:id-名称0-x结果(见表1):id-名称-引擎id1-x-0使用表1上的循环
2sbarzqh1#
虽然您还没有为数据库产品添加标签,但对于许多sql后端,语法几乎是相同的:
update table1 set engineId = t2.Id from table1 t1 inner join table2 t2 on t1.Name = t2.Name;
下面是dbfiddle的sqlserver演示编辑:如果您使用的是mysql,它的语法有点奇怪:
update Table1 t1 inner join Table2 t2 on t1.Name = t2.Name set t1.engineId = t2.Id;
af7jpaap2#
在大多数数据库中,可以使用相关子查询执行此操作:
update t1 set engine_id = (select engine_id from t2 where t2.name = t1.name) where engine_id is null
请注意,要使其正常工作,不应存在重复项 name 在 t2 (否则,子查询可能返回多行,这将导致查询出错)。
name
t2
2条答案
按热度按时间2sbarzqh1#
虽然您还没有为数据库产品添加标签,但对于许多sql后端,语法几乎是相同的:
下面是dbfiddle的sqlserver演示
编辑:如果您使用的是mysql,它的语法有点奇怪:
af7jpaap2#
在大多数数据库中,可以使用相关子查询执行此操作:
请注意,要使其正常工作,不应存在重复项
name
在t2
(否则,子查询可能返回多行,这将导致查询出错)。