2011-10-12 19 views
1

こんにちは、2つのテーブルがあります。Mysqlのデータベーステーブルデータの一括更新

TBL1

id    int(11)  NOT NULL 

positionName varchar(20) NULL 

positionId  int(11)  NULL 

TBL2

positionId   int(11)  NOT NULL 

positionName  varchar(20) NULL 

本来、何列tbl1positionIdは存在しません。今度はtbl1positionNameの代わりにpositionIdを使用します。

何千ものデータがすでに両方のテーブルに格納されているという問題があります。

tbl1の各データの正しいpositionIdへのリンクを正しく、迅速に行うにはどうすればよいですか?positionNameはこれまで使用されていましたか?

バッチ更新は方法ですか?

私はSQLブラウザですべてを実行できますか?可能であれば、私はコーディングを使用したくありません。

ありがとうございます。

答えて

1

このような複数のテーブルUPDATEをお探しですか?

UPDATE tbl1 
JOIN tbl2 ON tbl1.positionName = tbl2.positionName 
SET tbl1.positionId = tbl2.positionId 
WHERE tbl1.positionId IS NULL 

私はpositionNametbl2で一意であることを仮定しているが、それがない場合は、あなたがそれを処理したい方法を検討する必要があります。

+0

NICEソリューション。ありがとうございます。非常にうまくいきます。はい 'positionName'は' tbl2'でユニークです – kitokid