2012-02-20 16 views
1

すべての行を複製するSQL文を書き込もうとしていますが、新しい行の値はemployeeです。 INSERTMYSQL、レコードを複製するが列の値を変更する

表:

| employee | property_name | property_value | 
|:--------:|:--------------|:---------------| 
| 16  | Salary  | 28,000   | 
| 16  | Department | 12    | 
| 17  | Salary  | 38,000   | 
| 17  | Department | 8    | 

INSERT後の望ましい結果:

| employee | property_name | property_value | 
|:--------:|:--------------|:---------------| 
| 16  | Salary  | 28,000   | 
| 16  | Department | 12    | 
| 17  | Salary  | 38,000   | 
| 17  | Department | 8    | 
| 18  | Salary  | 28,000   | 
| 18  | Department | 12    | 

私は変数を使用するいくつかのスレッドを見てきました。挿入/選択からの値を置き換える何らかの形で変数を設定して参照できますか?

answer to this threadはうまくいくようです。しかし、私はむしろそのようなテーブルを作成したり削除したりしたくないでしょう。

+1

一時テーブルを使用することができますが、苦痛は軽減されます。 – biziclop

+0

そのスレッドは、テーブルがどのカラムを持っているかを事前に知らない場合(カラムが変更された場合にポスターを変更する必要がないため)です。あなたのテーブルデザインから判断すると、それはあなたのために問題になるとは思われません。 – ruakh

答えて

4
insert into YourTable (employee,property_name, property_value) 
select 18, property_name, property_value from YourTable where employee = 16 
+0

ハ! OPが求めたものとまったく同じですが、私は何が必要なのか疑いがあります。 –

+0

驚くばかり!ありがとうございました! –

+1

@MarcusAdamsあなたが間違っていると思う;-) –

関連する問題