【发布时间】:2013-01-27 17:03:24
【问题描述】:
您能否向我解释一下如何对这两个关系进行 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
它会做同样的事情,并使用显式的列名进行内部连接。即:
SELECT * from 1stRelation as x INNER JOIN 2ndRelation as z ON x.C=z.C
就个人而言 - 我不喜欢使用它们,除非我事先不知道表结构但知道它们应该能够被连接。
【讨论】:
基本上你做一个交叉连接,即。 e.您将第一个关系的每一行与第二个关系的每一行结合起来。然后你有两个 C 列。现在您消除两个 C 不相等 的每一行,并将它们合并为仅一列 C。
【讨论】: