如何通过多列理想地组合具有不同主键的两个表 HASH

Posted

技术标签:

【中文标题】如何通过多列理想地组合具有不同主键的两个表 HASH【英文标题】:How to combine two tables with different Primary Keys by multiple columns ideally HASH 【发布时间】:2021-09-04 16:20:48 【问题描述】:

我有两张世界国家独立日的表格,我想将它们组合成一张具有不同 ID 的表格,但它们使用不同的主键,任何建议都将不胜感激。 请求摘要:如何将具有不同主键但其他字段相同的两个表组合在一起并理想地删除重复字段 Hash Match 并删除重复项

预期结果 这将包括两个表格中的所有唯一国家/地区,请一个表格可能有更多国家/地区,我们希望确保从每张表格中获取所有不同的国家/地区。理想情况下,该解决方案可能类似于 SQL 中的哈希匹配运算符,它实现了几种不同的逻辑操作,这些操作都使用内存中的哈希表来查找匹配数据。非常感谢提前

需要合并的两张表格的图片。

【问题讨论】:

用您正在使用的数据库标记您的问题。 你到底为什么要编辑这个来删除示例数据??? 【参考方案1】:

你似乎想要full join

select a.*, b.*    -- select the columns you want
from a full join
     b
     on a.country = b.country;

如果您想分配一个新的唯一 ID,请使用 row_number()

select row_number() over (order by coalesce(a.country, b.country)) as new_id,
       a.*, b.*    -- select the columns you want
from a full join
     b
     on a.country = b.country;

【讨论】:

@ Gordon Linoff,非常感谢您的建议,理想情况下我想使用两列组合,因为这将保证没有重复,因为我想使用相同的原则,我有一个类似问题的表。

以上是关于如何通过多列理想地组合具有不同主键的两个表 HASH的主要内容,如果未能解决你的问题,请参考以下文章

将数据插入具有主键的表(多列)中,该表具有除主键以外的数据的另一个数据

在 PetaPoco 中,如何装饰具有多列主键的表

Rails 中具有相同键的两个表而不是 has_one 关系

如何在rails 5中为现有模型添加外键

oracle中 主键和外键是啥意思?啥地方采用呢?

oracle中 主键和外键是啥意思?啥地方采用呢?