【问题标题】:I need to Combine two lists that have 1 similar column and a second unique column我需要合并具有 1 个相似列和第二个唯一列的两个列表
【发布时间】:2019-02-12 21:29:05
【问题描述】:

我试图尽可能清楚地表达这一点。

这是我的场景:我有两个数据集。

数据集1:

Individual_id        
Code 1

数据集2:

Individual_id
Code 2

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

我需要的最终数据集如下所示:

Individual_ID   Code1     Code 2

有什么帮助吗?

谢谢!

【问题讨论】:

  • 如果没有数据样本和预期输出,这实际上是不可能回答的
  • 一个人的每张表可以有多个代码吗?两张表中的个人是否相同?
  • 欢迎来到 StackOverflow!你试过什么了?您可以为您的问题提供fiddle 吗?

标签: mysql sql merge


【解决方案1】:

使用UNION ALL

SELECT Individual_id, Code1, NULL Code2 FROM dataset1
UNION ALL
SELECT Individual_id, NULL, Code2 FROM dataset2

UNION ALL 结合两个查询返回的记录集。两个结果集都必须返回相同的列,因此您需要将每个结果集中的不可用列设置为NULL

【讨论】:

    【解决方案2】:

    只有在数据集之间没有关系的情况下才能进行交叉连接

    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
    

    【讨论】:

      猜你喜欢
      • 2021-07-15
      • 2023-03-13
      • 2016-09-04
      • 1970-01-01
      • 2019-04-03
      • 2021-11-27
      • 1970-01-01
      • 2019-01-18
      • 1970-01-01
      相关资源
      最近更新 更多