web-dev-qa-db-fra.com

Copier une colonne d'une table à une autre

Je suis confus sur la façon de copier une colonne d'une table à une autre table en utilisant où. J'ai écrit une requête SQL, mais il dit que le temps de verrouillage de transaction dépassé ou la requête revient plus d'une ligne.
[.____] Utiliser MySQL
Essentiellement,
J'ai:

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)
26
JPro

Je ne crois pas que vous avez besoin d'une sous-requête.

UPDATE results, build
SET    results.platform_to_insert = build.correct_platform
WHERE  results.BuildID = build.BuildID
70
Benoit Vidis

Il y a deux options ici:

  1. mettez à jour vos tables pour utiliser BuildID comme clé primaire (pour éviter les doublons)
  2. mettez à jour votre sous-requête pour renvoyer un seul résultat

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