手记

sql执行顺序和join总结

Join类型

cross join 是笛卡儿乘积就是一张表的行数乘以另一张表的行数.
    inner join 只返回两张表连接列的匹配项.
    left join 第一张表的连接列在第二张表中没有匹配是,第二张表中的值返回null.
    right join 第二张表的连接列在第一张表中没有匹配是,第一张表中的值返回null. 
    full join 返回两张表中的行 left join+right join

sql执行顺序

1.FROM
    2.ON
    3.JOIN
    4.WHERE
    5.GROUP BY
    6.WITH CUBE or WITH ROLLUP
    7.HAVING
    8.SELECT
    9.DISTINCT
    10.ORDER BY
    11.TOP

on中不是最终过滤, 因为后面left join还可能添加回来, 而where才是最终过滤.

只有当使用外连接(left, right)时, on 和 where 才有这个区别, 如果用inner join, 在哪里制定都一样, 因为on 之后就是where, 中间没有其它步骤

16人推荐
随时随地看视频
慕课网APP