当我们对两个表应用自然连接时,新的主键是什么?
What is the new primary key when we apply natural join on two tables?
如果有两个表:
table1
具有属性 a1, a2, a3
,table2
具有属性 b1, b2, b3
。 a1
和 b1
是它们各自的主键。当对两个表应用自然连接时,新的主键是什么。 a1, b1
组合形成一个 复合主键 或者它们成为 两个独立的候选键
在关系数据库术语中,结果应该具有与一个关系中的每个键对应的键与另一个关系中的每个键对应的键(即候选键的 "natural-join",而不是每个关系只有一个键)。因此,如果 A1 和 B1 是您的示例中唯一的键,那么自然连接结果中的唯一键将是 (A1,B1).
但是,您用 MySQL 标记了您的问题。 MySQL 是一个 SQL DBMS,不是关系型的。 MySQL 不支持密钥派生的关系模型概念。在 MySQL 中,此类查询的结果中没有任何键的物理实现。
如果有两个表:
table1
具有属性 a1, a2, a3
,table2
具有属性 b1, b2, b3
。 a1
和 b1
是它们各自的主键。当对两个表应用自然连接时,新的主键是什么。 a1, b1
组合形成一个 复合主键 或者它们成为 两个独立的候选键
在关系数据库术语中,结果应该具有与一个关系中的每个键对应的键与另一个关系中的每个键对应的键(即候选键的 "natural-join",而不是每个关系只有一个键)。因此,如果 A1 和 B1 是您的示例中唯一的键,那么自然连接结果中的唯一键将是 (A1,B1).
但是,您用 MySQL 标记了您的问题。 MySQL 是一个 SQL DBMS,不是关系型的。 MySQL 不支持密钥派生的关系模型概念。在 MySQL 中,此类查询的结果中没有任何键的物理实现。