Подтвердить что ты не робот

Копировать один столбец из одной таблицы в другую

Я смущен тем, как скопировать столбец из одной таблицы в другую, используя где. Я написал 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)
4b9b3361

Ответ 1

Я не считаю, что вам нужен суб-запрос.

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

Ответ 2

Здесь есть два варианта:

  • обновите свои таблицы, чтобы использовать BuildID в качестве первичного ключа (чтобы избежать дублирования)
  • обновите свой подзапрос, чтобы возвращать только один результат

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