我有三个表:A
B
和C
。 B
是根据TEMP TABLE
的输出创建的CSV
。我的目标是将必要的值从B
复制到A
,但必须从C
创建或选择其中一个属性。
到目前为止我已经
了WITH table_c_data as (
INSERT INTO table_c (id)
SELECT table_c_id
FROM table_b b
WHERE
NOT EXISTS (SELECT * FROM table_c c WHERE b.table_c_id = c.id)
RETURNING *
)
INSERT INTO table_a
(w,x,y,z)
SELECT table_c.id, x, y, z
FROM table_b
INNER JOIN table_c_data as table_c
ON table_b.table_c_id = table_c.id;
但是如果记录 存在,我无法弄清楚如何让原始table_c_data
返回任何内容。 (在我添加WHERE
子句之前,指定现有查询按预期运行,但我正在尝试处理uniquness约束,因此我必须先检查记录是否存在)