我想创建一个包含两个现有表中某些列的新表。某些列位于两个现有表中,但不是全部。列“unique_number”在两个表中。我想要的是检查两个表中是否存在相同的unique_number,如果是,则使用与该unique_number对应的所有列(来自两个表)创建一行。如果unique_number不在两个现有表中,那么我不关心在我的新表中包含它。
我可以在SAS中执行此操作,但我在SQL中被迫执行此操作,对该程序的背景知识很少。
答案 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;
这掩盖了“两个表都在两个表中”的复杂性,并且两个表中的那些列可能具有不同的值。考虑一下。