我已经阅读了所有连接是关联和可交换的地方。
所以A join (B join C)
应该是一样的(A join C) join B
。
但我真的很难理解这是怎么回事。假设 A 与 B 有共同的财产,B 与 C 有共同的财产,但 A 和 C 没有共同的财产可以连接。
似乎在这种情况下,在第二个实例中(A join C) join B
,当发生连接 A 和 C 的操作时,它会导致一个空集,使得与 B 的连接变得不可能。
而在第一种情况下它会起作用,因为 B 连接 C 会导致预期的连接表具有与 A 连接的属性。