2014-07-18 112 views
0

尝试执行一个已存在表的过程。这是表A尝试将数据从一个表合并到另一个表

我有登台表,我已经上传了数据。这是表B.

表A中已经包含在里面的数据除了我需要从表B中加入到表A.一些数据

所以表B有一个额外的列,我需要它,以配合数据已经在表A表A现有

所以布局目前是:在表B

Column 1 Column 2 Column 3 

AB 

ABC 

布局是:

Column 1 Column 2 Column 3 

ABC  Yellow Test1 

AB  Blue  Test2 

所以我需要这些列2和3移至表一表B,因此他们与已经在第1列

尽我所能来解释和英语是我的第二语言的数据正确地匹配,所以我为任何错误道歉。无论如何知道什么是最好的方式,这将是一个合并?

感谢

回答

0
Update TableA 
Set TableA.Column2=B.Column2, 
     TableA.Column3=B.Column3 
From TableA A 
     Inner Join TableB B ON B.Column1=A.Column1 
0

使用LEFT OUTER JOIN合并数据

SELECT TableA.clomun1, 
     Tableb.column2.tableb.column3     
FROM tableA 
    LEFT JOIN tableB 
     ON table1.column1 = table2.column1; 
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); 
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; 

这在甲骨文工作正常。您也可以插入不在表A中的记录,并添加

WHEN NOT MATCHED THEN INSERT (Column1, Column2, Column3) 
       VALUES (Q.Column1, Q.Column2, Q.Column3) 
相关问题