2017-01-18 6 views
0

私は2つのテーブル:state_currentstate_snapshotsを持っています。mysql:複数の行を1つにマージする

+-----+-------+ 
| key | value | 
+-----+-------+ 
| A |  1 | 
| B |  2 | 
| C |  3 | 
| D |  4 | 
+-----+-------+ 

さて、私は別々の列内の各キーの値が含まれているstate_snapshotsに行を追加します:

+---+---+---+---+ 
| A | B | C | D | 
+---+---+---+---+ 
| 1 | 2 | 3 | 4 | 
| 1 | 2 | 3 | 5 | 
| 1 | 2 | 4 | 5 | 
... 
+---+---+---+---+ 

state_currentは正確に4行、4つの異なるキーの現在の値が含まれていますもちろん、キーは決してstate_currentで変更されず、値だけが変更されます。どのようなmySQLのクエリは、最初の列のにAの値を持つ行を作成し、の結果はBstate_currentのように続きますか?

私はmySQLを使い慣れていますので、事前に助けてくれてありがとうございます!私が考えることができ

答えて

1

最も簡単な答えは次のとおりです。

insert into state_snapshots(a,b,c,d) 
    values ((select value from state_current where key='A'), 
      (select value from state_current where key='B'), 
      (select value from state_current where key='C'), 
      (select value from state_current where key='D') 
     ); 
+0

どうもありがとう!それは魅力のように働いた! – LukeLR

関連する問題