自然加入不同的表

时间:2013-01-27 17:03:25

标签: relational-algebra

请您解释一下如何对这两个关系进行自然连接(一个有5个,另一个有3个行?

第一关系

A   C
3   3
6   4
2   3
3   5
7   1

第二关系

B   C   D
5   1   6
1   5   8
4   3   9

3 个答案:

答案 0 :(得分:1)

在你的问题中,你有两个独立的关系,它们有一个共同的属性(即列):C。

自然连接将两个关系中的所有元组与该属性相结合。您将得到结果:

A B C D    

7 5 1 6  
3 4 3 9
2 4 3 9
3 1 5 8

可以使用@Matthew发布的代码在SQL中执行此操作。

答案 1 :(得分:0)

类似的东西:

SELECT * FROM 1stRelation NATURAL JOIN 2ndReleation

它将使用显式列名称执行相同的操作和内部联接。即:

SELECT * from 1stRelation as x INNER JOIN 2ndRelation as z ON x.C=z.C

个人 - 我不想使用它们,除非在可能的情况下,我事先不知道表结构,但知道它们应该能够加入。

答案 2 :(得分:0)

基本上你做一个CROSS JOIN,i。即您将第一关系中的每一行与第二关系的每一行组合在一起。然后你有两个C列。现在你消除了两个C 不等于的每一行,并将它们合并为一个C列。