2014-07-18 149 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) 
相關問題