我已经阅读了所有连接是关联和交换的地方。
所以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 连接的属性。