尝试执行我有一个现有表的过程。这是表A
我有上传数据的登台表。这是表B.
除了我需要从表B添加到表A的一些数据外,表A已经包含了数据。
因此,表B有一个额外的列,我需要它与表A中已存在的数据相匹配。
因此表A中的布局是:
Column 1 Column 2 Column 3
AB
ABC
表B中的布局是:
Column 1 Column 2 Column 3
ABC Yellow Test1
AB Blue Test2
所以我需要将这些第2列和第3列从表B移到表A,因此它们与第1列中已有的数据正确匹配。
尽我所能解释,英语是我的第二语言,所以我为任何错误道歉。无论如何,知道最好的方法是什么,它会合并吗?
谢谢
答案 0 :(得分:0)
Update TableA
Set TableA.Column2=B.Column2,
TableA.Column3=B.Column3
From TableA A
Inner Join TableB B ON B.Column1=A.Column1
答案 1 :(得分:0)
使用左外连接来合并数据
SELECT TableA.clomun1,
Tableb.column2.tableb.column3
FROM tableA
LEFT JOIN tableB
ON table1.column1 = table2.column1;
答案 2 :(得分:0)
以下查询在 MySQL 中正常运行,请尝试一下:
update TableA as a inner join TableB as b on a.Column1=b.Column1
set a.Column2 = b.Column2 , a.Column3=b.Column3
where a.Column1=b.Column1;
对于 Oracle ,请使用以下内容:
update TableA
set TableA.Column2 =
(select TableB.Column2 from TableB where TableA.Column1=TableB.Column1),
TableA.Column3 =
(select TableB.Column3 from TableB where TableA.Column1=TableB.Column1);
答案 3 :(得分:0)
MERGE INTO TableA
USING (SELECT Column1, COlumn2, Column3
FROM TableB) Q
ON (TableA.Column1=TableB.Column1)
WHEN MATCHED THEN UPDATE SET TableA.Column2=Q.Column2
, TableA.Column3=Q.Column3;
这在Oracle中运行良好。您还可以插入表A中没有添加
的记录 WHEN NOT MATCHED THEN INSERT (Column1, Column2, Column3)
VALUES (Q.Column1, Q.Column2, Q.Column3)