2013-06-03 33 views
0

我想創建一個包含來自兩個現有表的某些列的新表。有些列在兩個現有表中,但不是全部。 「unique_number」列在兩個表中。我想要的是檢查兩個表中是否存在相同的unique_number,如果是,則使用與該unique_number對應的所有列(來自兩個表)的單個行。如果unique_number不在兩個現有的表中,那麼我不在乎將它包含在我的新表中。從完全加入創建新表

我可以在SAS中做到這一點,但我不得不在SQL中做這個,對程序的背景知識很少。

+1

因爲它是一個貧窮的技術,從其它表,你爲什麼這樣做,重複的數據。爲什麼不只是爲了你的目的查詢現有的表格?如果您創建了一個新表格,那麼隨着數據更改,您的計劃是如何保持數據同步? – HLGEM

回答

4

聽起來你需要INNER JOIN而不是FULL JOIN。這是做你想要什麼樣的一種方式:

SELECT A.unique_number, 
     A.col1FromA, -- list the other columns from TableA here 
     B.col1FromB -- list the other columns from TableB here 
INTO TableC 
FROM TableA A 
INNER JOIN TableB B 
    ON A.unique_number = B.unique_number 
+0

表C是在這個過程中創建的? – user2448666

+0

@ user2448666是的,這就是'INTO TableC'正在做什麼 – Lamak

0

內連接的「unique_number」一欄應該是你所需要的,如果你的描述是準確的。

select t1.unique_number, t1.other_column, t2.something_else 
into new_table_name 
from one_table t1 
inner join other_table t2 
on t1.unique_number = t2.unique_number; 

這掩蓋了複雜性,「一些列的兩個表中」,而那些既表中的列可能有不同的價值觀。給一些想法。

Select...into syntax

+0

以任何方式輕鬆地使這個新表? – user2448666

+0

更新的答案,並且添加鏈接。 –