我个人觉得很奇怪。
按理说表A和表B相连接,采用的是迪卡尔积,这个积里面不会出现NULL值。既然如此,表A左连接表B的时候又是如何得到表B中的NULL值的?除非它采用的不是迪卡尔积,还有一种可能就是,每表都多一行数据,就是全为NULL的一行数据,这样积出来的结果,才会有NULL,不知道我说的对不对?
------解决思路----------------------
那 当然会出现全null的,一般正式系统不会允许有一行或者多行全null得存在。我的确结果有书上介绍join的本质是先做笛卡儿积,但是同时会带上一句“最终结果要由编译器、优化引擎决定”(大概这个意思),所以通常我不关注这个问题。只是说,不应该允许表中有全null的数据
------解决思路----------------------
表A和表B的迪卡尔积不能直接得到,需要程序通过遍历才能出结果的。
所以是根据连接方式选用不同的遍历方法得出结果,而不是先有迪卡尔积再怎么出连接结果的问题,先后次序千万别搞错了。