您能否向我解释一下如何对这两个关系进行 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
您能否向我解释一下如何对这两个关系进行 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
在您的问题中,您有两个独立的关系,它们有一个共同的属性(即列):C。
自然连接将两个关系中的所有元组与该属性共同组合。你最终会得到结果:
A B C D
7 5 1 6
3 4 3 9
2 4 3 9
3 1 5 8
这可以通过使用@Matthew 发布的代码在 SQL 中执行。
就像是:
SELECT * FROM 1stRelation NATURAL JOIN 2ndReleation
它将使用显式列名执行相同的操作和内部连接。IE:
SELECT * from 1stRelation as x INNER JOIN 2ndRelation as z ON x.C=z.C
就个人而言 - 我不喜欢使用它们,除非我事先不知道表结构但知道它们应该能够加入。
基本上你做一个交叉连接,即你将第一个关系的每一行与第二个关系的每一行结合起来。然后你有两个 C 列。现在消除两个 C不相等的每一行,并将它们合并为一列 C。