我正在尝试尽可能清楚地表达这一点。
这是我的情况:我有两个数据集。
数据集1:
Individual_id
Code 1
数据集2:
Individual_id
Code 2
individual_ID
中的值对于每个数据集都是唯一的,这意味着两个列表都没有重复的personal_id,因此不可能进行典型的联接(我仍然认为不是)
我需要的最终数据集看起来像这样:
Individual_ID Code1 Code 2
有帮助吗?
谢谢!
答案 0 :(得分:1)
使用UNION ALL
:
SELECT Individual_id, Code1, NULL Code2 FROM dataset1
UNION ALL
SELECT Individual_id, NULL, Code2 FROM dataset2
UNION ALL
合并两个查询的记录集返回。两个结果集必须返回相同的列,因此您需要使用NULL
到每个结果集中的不可用列。
答案 1 :(得分:0)
仅当数据集之间没有关联时才能进行交叉联接
selec t1.individual_id, Code1, Code2
from t1
cross join t2
但是请注意,交叉联接将结果乘以m x n
,其中m是从t1
返回的记录数,而n
是从t2
返回的记录数>
或
如果您打算将两个数据集合并为一个,
select Individual_id, Max(Code1) Code1, Max(Code2) Code2 From
(
SELECT Individual_id, Code1, NULL Code2 FROM dataset1
UNION ALL
SELECT Individual_id, NULL, Code2 FROM dataset2
) t
Group by Individual_id