2017-02-27 5 views
0

作成したdeal_classification_DMテーブルのCATO_NAME列に右結合の結果を挿入しようとしています。 selectの結果は予期したもので、プログラムは正常に実行されますが、データはテーブルに更新されません。 どうしたの?insert intoとright joinを使用してデータをテーブルに挿入しない

`INSERT INTO deal_classification_DM 
(CATO_NAME) 
SELECT 
    taxonomies.NAME 
FROM 
    taxonomies 
RIGHT JOIN 
    deal_classification_DM ON taxonomies.ID = deal_classification_DM.CATO_ID; 

挿入が、私はこのように作成された表deal_classification_DMで行われます。

CREATE TABLE deal_classification_DM 
AS SELECT 
    deal_taxonomy.DEAL_ID 
    ,deal_taxonomy.TAXONOMY_ID AS TAXO_ID 
    ,taxonomies.NAME AS TAXO_NAME 
    ,taxonomies.PARENT_ID AS CATO_ID 
FROM 
    deal_taxonomy 
LEFT JOIN 
    taxonomies ON deal_taxonomy.TAXONOMY_ID = taxonomies.ID; 

ALTER TABLE deal_classification_DM 
ADD COLUMN 
    CATO_NAME TEXT; 

答えて

0

あなたが本当に行う必要がある何例えば、updateないinsert次のとおりです。

UPDATE deal_classification_DM d 
SET d.CATO_NAME = (
    SELECT name FROM taxonomies WHERE ID = d.CATO_ID 
); 

INSERT声明nullの値を持つ新しい行がDEAL_ID,TAXO_IDおよび01に挿入されますの列の場合は、CATO_NAME列の値を更新する必要があるのは、新しい列だからです。

+0

ありがとうございました! –

関連する問題