当前位置: 首页 > 面试题库 >

如何比较2个具有复合主键的表中的行?

甄华清
2023-03-14
问题内容

这是场景:

我有2个数据表,一个是2009年版本,另一个是2010年版本。每个表的主键是组合键。我知道每一行都有不同数量的行,我需要找出差异。

通常,在“常规”主键设置中,我只会在其他表的主键列表中查找主键值。但是我不知道如何使用复合主键(甚至是可能的话)执行此操作。

那么,如何比较这两个表中的行呢?

编辑:更具体地说,我试图找到表之间的 差异 ,而不是共同的行


问题答案:

只需使用基于您的组合键的条件进行完全外部联接:

select t09.*, t10.*
from table2009 as t09
  full outer join table2010 as t10
    on t09.k1 = t10.k1 and t09.k2 = t10.k2 and ...

如果只希望在结果集中看到不匹配的行(差异),则在where子句中过滤它们:

where t09.k1 is null or t10.k1 is null


 类似资料:
  • 问题内容: 我有一个仅包含2个字段的表。该表具有由这两个字段形成的复合PK。 使用Netbeans从数据库创建实体bean时,不会像其他具有两个以上字段的表那样自动创建实体bean。 所以我想我需要自己创建实体bean。创建此实体bean的最佳实践是什么?是否必须包含对象? 问题答案: 我不使用NetBeans,因此我不能说任何有关其映射工具的信息。 要映射组合键,有两个选项。您可以 用PK字段定

  • 问题内容: 我需要一个表来存储一些评分,在此表中,我有一个 综合索引(user_id,post_id) 和其他列来标识不同的评分系统。 在此表中,我没有 主键, 因为 主键 必须是唯一的,而INDEX不必是唯一的,就我而言,唯一性是一个问题。 例如我可以有 缺少PRIMARY KEY可能会导致性能问题?我的表结构好还是需要更改? 谢谢 问题答案: 几点: 听起来您只是在使用表的当前唯一特性,并将其

  • 我在oracle数据库中有一个包含客户数据的表。以下是一个简化的定义: 此表的主键是。 该表有许多行,其中为空。在数据库级别,没有问题,但是当我试图通过JPA实体访问这些行时,会导致一些问题: 1:使用

  • 有一个,和表。表具有由和组成的主键约束。我想得到一个学生记录,他们的的分数高于。 从上面的表格中,克莱尔是唯一满足条件的学生,的分数高于。 我不知道如何将查询写入获取此类记录。 我只设法将学生表与计分表进行了内部连接,但不确定从这里开始往哪里走。

  • 请参考附件截图了解表格结构。 Empd_Id是'employee'表中的主键,该主键与'product'表中的'product_id'一起成为复合键的一部分。任何员工都可以拥有多个产品,因此在这种情况下,“员工-产品”表之间就变成了“一对多”关系。现在我很困惑,是只需要编写1个JpaRepository接口(即为employee编写),还是需要编写2个JpaRepository接口(1个为empl

  • 问题内容: 只是为了扩展我以前的问题-我的数据库中有两个表,我想提取某些信息。下表: 您向我提供了以下代码来获取播放器的名称: 效果很好,谢谢-我只想进行两项调整: 我想返回得分手的名字以及球员的名字。由于m.scorer是一个ID,如果p.Name已被映射到m.playerID,我如何将其映射到p.Name属性? 上面的查询返回所有玩家的姓名。我很快就会添加搜索功能,您可以在其中搜索特定玩家的所