将一列从一个表复制到另一个
我很困惑如何将列从一个表复制到另一个表使用何处。我编写了SQL查询,但它说超出事务锁定时间或查询返回多行。
用mysql
基本上,
我:将一列从一个表复制到另一个
Table 1: Results
BuildID platform_to_insert
Table 2: build
BuildID correct_platform
update results set results.platform_to_insert
= (select correct_platform from
build where results.BuildID = build.BuildID)
我不相信你需要一个子查询。
UPDATE results, build
SET results.platform_to_insert = build.correct_platform
WHERE results.BuildID = build.BuildID
多数民众赞成真棒查询解决我的问题非常感谢 – 2012-06-27 14:10:35
哇,真棒的答案。这从根本上改变了我对关系数据库的理解 – Mansiemans 2014-03-20 14:38:45
嗨,我已经试过这个查询,但不能正常工作请检查:更新staff_login_times,staff_rotas SET staff_login_times.scheduled_start = staff_rotas.startdate WHERE staff_login_times.actual_start = staff_rotas.startdate; – HIR 2016-11-30 11:32:46
有两个选项:
- 更新你的表使用
BuildID
作为主键(以避免重复) -
更新您的子查询以仅返回一个结果
UPDATE results SET results.platform_to_insert = ( SELECT correct_platform FROM build WHERE results.BuildID=build.BuildID LIMIT 1 );
你在每张表中有多少行?向我们展示MySQL提供的完整且实际的错误消息 – 2010-01-06 19:23:28
您编写查询的方式的确可以从子查询中返回多行:如果给定的buildID存在多于一个的值,应该采用correct_platform的哪个值? – davek 2010-01-06 19:24:32
我想要做的是:对于结果中的每个BuildID,将其与build中的Build ID进行比较,然后从结构 – JPro 2010-01-06 19:32:36