2012-01-28 3 views
1
table a: column type, column type_id, column_owner, column_data1, column_data2, and so on 
      ----------- -------------- ------------ ------------ ------------ 
      'type a'  43    'owner sally' 'dfawerfd' 'yiyiyitit' 
      'type b'  51    'owner sally' 'hufvgdfd' 'weysdgjed' 
      'type c'  77    'owner sally' '3fdfsetr' '4tgfgert4' 



table b: column type, column type_id, column_owner 
      ----------- -------------- ------------ 
      'type a'  43    'owner sally' 
      'type b'  51    'owner sally' 
      'type c'  77    'owner sally' 

      'type a'  100    'owner harry' 
      'type b'  111    'owner harry' 
      'type c'  150    'owner harry' 

テーブルaの新しい行をテーブルaに挿入するには、a.column_owner =オーナーsally ';挿入された新しいレコードごとにすべての列値をコピーする必要がありますが、a.column_ownerを 'owner harry'に設定し、a.type_idをb.type_idに設定する必要があります。a.type == b.typeおよびb.column_owner = = '所有者ハリー'。テーブル内の行をコピー中に更新するのにMySQLの特別なINSERT/SELECT文が必要

ので、新しいテーブルのようになります。

table a: column type, column type_id, column_owner, column_data1, column_data2, and so on 
      ----------- -------------- ------------ ------------ ------------ 
      'type a'  43    'owner sally' 'dfawerfd' 'yiyiyitit' 
      'type b'  51    'owner sally' 'hufvgdfd' 'weysdgjed' 
      'type c'  77    'owner sally' '3fdfsetr' '4tgfgert4' 
      'type a'  100   'owner harry' 'dfawerfd' 'yiyiyitit' 
      'type b'  111   'owner harry' 'hufvgdfd' 'weysdgjed' 
      'type c'  150   'owner harry' '3fdfsetr' '4tgfgert4' 

私は仕事をする/アップデートをコピーするテーブル内のレコードを13,000+、1つのSQLコマンド可能な場合がありいただければ幸いです。

私はコミュニティの助けを楽しみにしています、ありがとうございます!

答えて

0

これがあなたの13.000レコードをすべて満たしているかどうかを知る方法はありませんが、あなたが与えた例では、次の文がそのトリックを行います。

クエリの要旨は、tableA

SQLステートメントに

  • JOIN各テーブルからcolumn_type
  • SELECT適切なフィールドに、両方のテーブル
  • INSERTこれらのレコードである

    INSERT INTO tableA 
    SELECT a.column_type 
         , b.column_type_id 
         , b.column_owner 
         , a.column_data1 
         , a.column_data2 
    FROM tableA a 
         INNER JOIN tableB b ON b.column_type = a.column_type 
    WHERE b.column_owner = 'owner harry' 
    
+0

ありがとう、WHERE句がWHERE b.column_owner = 'owner harry'とa.column_owner = 'owner sally'である限り、トリックを行うと思います。 – user1175550

+0

@ user1175550 - あなたはようこそ。これがあなたの質問に答えたら、あなたはこの答えを受け入れることができます。回答を受け入れる方法はこちら[こちら](http://meta.stackexchange.com/questions/5234/)をご覧ください。 –

関連する問題