从完整联接创建一个新表

时间:2013-06-03 18:25:29

标签: sql-server-2008

我想创建一个包含两个现有表中某些列的新表。某些列位于两个现有表中,但不是全部。列“unique_number”在两个表中。我想要的是检查两个表中是否存在相同的unique_number,如果是,则使用与该unique_number对应的所有列(来自两个表)创建一行。如果unique_number不在两个现有表中,那么我不关心在我的新表中包含它。

我可以在SAS中执行此操作,但我在SQL中被迫执行此操作,对该程序的背景知识很少。

2 个答案:

答案 0 :(得分: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

答案 1 :(得分: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