将一列从一个表复制到另一个表

时间:2010-01-06 19:20:05

标签: mysql sql-update

我对如何使用where将列从一个表复制到另一个表感到困惑。我编写了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)

2 个答案:

答案 0 :(得分:70)

我认为你不需要子查询。

UPDATE results, build
SET    results.platform_to_insert = build.correct_platform
WHERE  results.BuildID = build.BuildID

答案 1 :(得分:5)

这里有两个选项:

  1. 更新您的表格以使用BuildID作为主键(以避免重复)
  2. 更新子查询只返回一个结果

    UPDATE results SET results.platform_to_insert = (
        SELECT correct_platform
        FROM build
        WHERE results.BuildID=build.BuildID LIMIT 1
    );