我需要合并两个具有1个相似列和第二个唯一列的列表

时间:2019-02-12 21:29:06

标签: mysql sql merge

我正在尝试尽可能清楚地表达这一点。

这是我的情况:我有两个数据集。

数据集1:

Individual_id        
Code 1

数据集2:

Individual_id
Code 2

individual_ID中的值对于每个数据集都是唯一的,这意味着两个列表都没有重复的personal_id,因此不可能进行典型的联接(我仍然认为不是)

我需要的最终数据集看起来像这样:

Individual_ID   Code1     Code 2

有帮助吗?

谢谢!

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