很容易理解为什么左外部联接不是可交换的,但是我很难理解它们是否是可交换的。几家在线资源表明不是,但我还没有说服自己就是这种情况。 & B5 M( V5 y4 N; ]% m假设我们有三个表:A,B和C。 4 n, r. ]' m$ }, C/ B* Z5 O2 ?1 }令A包含ID和B_ID两列,其中ID是表A的主键,B_ID是与表B的主键相对应的外键。/ I7 |8 b, f6 j8 U5 ]- n! k7 q' Q$ H
令B包含两列ID和C_ID,其中ID是表B的主键,C_ID是与表C的主键相对应的外键。1 {! v: d8 G. M t3 X
让C包含ID和VALUE两列,其中ID是表C的主键,而VALUE仅包含一些任意值。: h8 A1 C. [/ v$ z+ g
那不(A left outer join B) left outer join C应该等于A left outer join (B left + k' d$ ?9 I8 k( touter join C)吗? * Z- O- f; t& r, u! G : i V0 d" v6 i# L 解决方案: