2016-05-22 4 views
0

次の問題があります。MySQL既存のテーブルに1列のみをインポートします

私は、次のフィールド(例)を含むテーブルがあります。原因のミスに

id, id2, id3, id4 

を、私は誤っid3のすべての値を削除しました。 (今はNULLです)。

私はもう少し古いので、破損したテーブルと同じカウントを持っていない2番目のファイル(バックアップ)があります。そこにはid3が存在します。

少なくとも大きな部分を復元するには、これらのテーブルにどのように「参加する」のですか? id3を破損していないテーブルの破損したテーブルにのみ挿入しますか?

私はこの試みた:私の場合は

UPDATE table1 SET `id3` = SELECT `id3` FROM table2 

を、唯一のphpMyAdminまたはSQL構文溶液(なしコンソールが)うまくいく...

助けてください!

答えて

0

私たちは、1つ、2つ、またはIDSの3は、あなたがjoinを使用することができ、それぞれの行を定義すると仮定した場合:

update table1 t1 join 
     table2 t2 
     on t1.id = t2.id 
    set t1.id3 = t2.id3; 

これはid 2つのテーブル内で一意であることを前提としています。

update table1 t1 join 
     table2 t2 
     on t1.id = t2.id and t1.id2 = t2.id2 and t1.id4 = t2.id4 
    set t1.id3 = t2.id3; 
1

idが一意の属性であると仮定すると:あなたは、より複雑な式を使用する場合があります。

あなたは、単にこのクエリを実行することができます

UPDATE table1 SET id3 = (SELECT id3 FROM table2 WHERE table2.id = table1.id) 
関連する問題