例1(left join && right join
):
1 2 3 4 5 6 7 8 9 |
|
例二(left join
):
1 2 3 4 5 6 7 8 9 |
|
例三(right join
):
1 2 3 4 5 6 7 8 9 |
|
麻烦根据上面的现象,总结下 join
操作的执行顺序是怎样的?为什么最终得到的结果是这样(具体join过程
是怎样的)??
大家讲道理2017-04-11 09:07:35
在 MySQL 中,只有一种 Join 算法,就是大名鼎鼎的 Nested Loop Join,他没有其他很多数据库所提供的 Hash Join,也没有 Sort Merge Join。顾名思义,Nested Loop Join 实际上就是通过驱动表的结果集作为循环基础数据,然后一条一条的通过该结果集中的数据作为过滤条件到下一个表中查询数据,然后合并结果。如果还有第三个参与 Join,则再通过前两个表的 Join 结果集作为循环基础数据,再一次通过循环查询条件到第三个表中查询数据,如此往复。
http://www.kuqin.com/database...