を移入するために、私は、次の列を有するcars_denorm
名前の非正規化テーブルを有する:のPostgreSQL:複数のサブ選択テーブル
id | make | model | color | comment
このデータを正規化するために、私は、make
、model
ために別々のテーブルを作成し、color
列 - これらの3つの表は、id
列とname
列で構成されています。たとえば、make
テーブルは、1 -> honda
,2 -> mazda
,3 -> ford
などの行を持ちます。 color
テーブルには、1 -> black
や2 -> red
などの行が含まれています。
私は列
id | make_id | model_id | color_id | comments
していて、make
からIDS、model
、およびcolor
テーブルを参照するcars_norm
テーブルを移入しようとしています。基本的には、cars_denorm
テーブルのすべての行と、すべての行について、make
、model
、およびcolor
テーブルのそれぞれのIDをクエリし、これらのIDをcars_norm
テーブルの1行として挿入しますcomments
の列)。私はサブ選択とPostgreSQLのWITH
キーワードでこれを達成しようとしてきましたが、動作させることはできません。プレーンなSQLでこれを行うことはできますか?そうでない場合は、どのように関数でこれを行うのですか?