超级通俗易懂的自然连接
突然遇到了就记录下来
原题:求两个关系RA和RB的自然连接,书本上的原题是这样的(有点歪,将就一下)
解题思路:
1、首先找到Ra 和Rb 中相同的列,是不是只有A和C两列是他们都有的;
2、我们就只看两个关系式中的A列和C列所在的行;
3、从Ra开始看,Ra的A,C两列所在第一行值是 ac。于是我们去Rb中找到A,C两列同样值为ac的行;
4、我们发现Rb中的第一行A,C列的值和Ra中第一行ac的值一样。所以需要将他们连接起来就是:
a b c a c d。但是,需要做去重复处理,所以得到 a b c d (没毛病);
5、同理,我们继续找RB中符合值为ac的行,发现已经没有了。那么我们继续找Ra中下一个;
6、Ra中 A,C列所在的第二行值为 b,d 。所以我们又要去RB中找值为b,d的行,找到就串起来。
所以找到Rb中的第三行 恰好也是b,d。连起来就是 b a d b d g ,需要做去重复处理,得到:
b a d g
7、再找Ra中的第三行 A,C列的值,对照Rb,发现没有符合条件的,同理第四行。。。最后结束。
所以结果为