数据不会使用 insert into 和 right join 插入 table

Data wont insert into table using insert into and right join

我正在尝试将右联接的结果插入到我创建的 table deal_classification_DM 的列 CATO_NAME 中。 select 的结果是我所期望的,程序 运行 很好,但是数据没有更新到 table 中。 怎么了?

`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;

插入是在 table 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;

您真正需要做的是 update 而不是 insert,例如:

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

INSERT 语句将在 DEAL_IDTAXO_IDCATO_ID 列中插入具有 null 值的新行,而您只需要更新值CATO_NAME 列,因为它是一个新列。