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)
サブクエリは必要ないと思います。
UPDATE results, build
SET results.platform_to_insert = build.correct_platform
WHERE results.BuildID = build.BuildID
ここには2つのオプションがあります。
BuildID
を主キーとして使用するようにテーブルを更新します(重複を避けるため)1つの結果のみを返すようにサブクエリを更新する
UPDATE results SET results.platform_to_insert = (
SELECT correct_platform
FROM build
WHERE results.BuildID=build.BuildID LIMIT 1
);