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

JPr*_*Pro 26 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)
Run Code Online (Sandbox Code Playgroud)

Ben*_*dis 70

我不相信你需要一个子查询.

UPDATE results, build
SET    results.platform_to_insert = build.correct_platform
WHERE  results.BuildID = build.BuildID
Run Code Online (Sandbox Code Playgroud)

  • 多数令人敬畏的查询解决了我的问题 (2认同)

tmp*_*var 5

这里有两个选项:

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

    UPDATE results SET results.platform_to_insert = (
        SELECT correct_platform
        FROM build
        WHERE results.BuildID=build.BuildID LIMIT 1
    );
    
    Run Code Online (Sandbox Code Playgroud)