我想创建一个新表,其中包含两个现有表中的某些列。有些列在两个现有表中,但不是全部。“unique_number”列在两个表中。我想要检查两个表中是否存在相同的 unique_number,如果存在,则使用与该 unique_number 对应的所有列(来自两个表)创建一行。如果 unique_number 不在两个现有表中,那么我不在乎将其包含在我的新表中。
我可以在 SAS 中执行此操作,但我被迫在 SQL 中执行此操作,而对该程序的背景知识很少。
我想创建一个新表,其中包含两个现有表中的某些列。有些列在两个现有表中,但不是全部。“unique_number”列在两个表中。我想要检查两个表中是否存在相同的 unique_number,如果存在,则使用与该 unique_number 对应的所有列(来自两个表)创建一行。如果 unique_number 不在两个现有表中,那么我不在乎将其包含在我的新表中。
我可以在 SAS 中执行此操作,但我被迫在 SQL 中执行此操作,而对该程序的背景知识很少。
听起来你需要 aINNER JOIN
而不是 a 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
如果您的描述准确,则“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;
这掩盖了“某些列在两个表中”的复杂性,并且两个表中的那些列可能具有不同的值。考虑一下。