Mysqlでinsertとselectをネストする方法


昨日突然臨時の小さな需要がありました.私たちのapolloパラメータが生産された後、リスクがある可能性があるので、返品案を設計します.この案は、古いデータをテンポラリ・テーブルに保存し、生産開始後に問題が発生した場合、テンポラリ・テーブルから数を調べて返品するテンポラリ・テーブルを構築することです.もちろんこれらはsqlスクリプトで実現されます.次にネストしたinsertとselectの使い方をお見せします~
一、単一テーブルネストinsertとselect
挿入するテーブルがtable 1(id,key,value),検索するテーブルがtable 2(id,key,value,...)であると仮定し,ここではすべてのフィールドを挿入しました. 
insert into table1

         select t2.id , t2.key , t2.value

      from table2 t2

where t2.key = 'xxx';

 
二、マルチテーブルネストinsertとselect
挿入するテーブルがtable 1(id,key,value),検索するテーブルがtable 2(id,key,value,...)であると仮定し,table3 (id,key,value,....)
ここではinsertの挿入値として結果セットに別名を付ける必要があります. 
insert into table1 

      select * from (

             select t2.id , t3.key ,t3.value 

                    from table2 t2

                join table3 t3

       on t2.key = t3.key)

as temp;

 
 
好きな友达はコメントしてもいいですよ~~