我想比较两个表格之间的数据,如果表格B 中存在表格A 的designation
值,我会插入idproduit
的值在表A 的idproduit
中对应表B的这个名称,如下所示:
table A | table B
--------------------------------- |---------------------------
designation|idproduit|date | | designation |idproduit |
--------------------------------| |------------------------------
des 1 |0 |12/12/2015| |des1 |5
des 2 |0 |14/06/2015| |de2 |6
des3 |0 |20/10/2015| |
当idproduit
相同时我希望表A中表B中的designation
的副本值,我这样做但是它不起作用
PS:我很抱歉,我的英语是法语
Insert into calcul(idproduit)
( Select idproduit
from calcul MT
where exists ( select designation
from produit OT
where OT.designation = MT.designation
)
)
答案 0 :(得分:0)
它不是很清楚,但根据您的描述,我认为,您确实需要更新列 TableA.idproduct ,其值来自 TableB.idproduct 其中designation
列在两个表中都匹配。
所以您的查询可能如下:
UPDATE table_a a
SET idproduct = b.idproduct
FROM table_b b
WHERE a.designation = b.designation;
示例DDL:
CREATE TABLE table_a (
designation TEXT,
idproduct INTEGER,
date DATE
);
CREATE TABLE table_b (
designation TEXT,
idproduct INTEGER
);
INSERT INTO table_a VALUES
('des1',0,'2015-12-12'::DATE ),
('des2',0,'2015-06-14'::DATE ),
('des3',0,'2015-10-20'::DATE );
INSERT INTO table_b VALUES
('des1',5),
('des2',6);