2017-01-31 9 views
0

(あなたは、好きなMySQLやMonetDBを言う方バリアント)それを行うことは非常に直感的で簡単です:SELECTの結果を既存のテーブルの新しい列として追加するにはどうすればよいですか? SQLで

CREATE TABLE t2 AS SELECT c1 FROM t1; 

と新しいテーブルの新しい列として選択結果を取得します。しかし、同じテーブル(テーブルt1)の結果を新しいカラムにしたい場合はどうすればよいでしょうか? c1INTであり、nullである可能性があるとします。私たちは書く必要があります:

ALTER TABLE t1 ADD c2 INT; 
UPDATE TABLE t1 SET c2 = c1; 

をし、それが我々はいくつかの値を使用して新しい列を初期化する必要があるnull以外の列だ場合ので、それは、簡単にバージョンです。データが複数のテーブルから来た場合は、UPDATEの内部クエリが必要になります(すべて可能な場合)。

何とか1つのコマンドで列を選択できますか?

答えて

1

あなたがjoinを使用:

UPDATE t1 JOIN 
     t2 
     ON t2.? = t1.? 
    SET t1.c2 = t2.c1; 

?t2の行がt1のどの行を更新する必要がアイデンティティに使用される列のプレースホルダです。

+0

しかし、私は 't2'を持っていません。私は 't1'しか持っていません。私は 't2'の作成を避けたいです。 – einpoklum

関連する問題