1

您能否向我解释一下如何对这两个关系进行 NATURAL JOIN(一个有 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
4

3 回答 3

1

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

自然连接将两个关系中的所有元组与该属性共同组合。你最终会得到结果:

A B C D    

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

这可以通过使用@Matthew 发布的代码在 SQL 中执行。

于 2013-02-10T15:26:04.893 回答
0

就像是:

SELECT * FROM 1stRelation NATURAL JOIN 2ndReleation

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

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

就个人而言 - 我不喜欢使用它们,除非我事先不知道表结构但知道它们应该能够加入。

于 2013-01-27T17:12:38.090 回答
0

基本上你做一个交叉连接,即你将第一个关系的每一行与第二个关系的每一行结合起来。然后你有两个 C 列。现在消除两个 C不相等的每一行,并将它们合并为一列 C。

于 2013-01-27T17:26:02.257 回答