作者:210213银成弘19952_Q8S | 来源:互联网 | 2020-08-25 05:23
如果是innerjoin,放on和放where产生的结果一样,但没说哪个效率速度更高?如果有outerjoin(leftorright),就有区别了,因为on生效在先,已经提前过滤了一部分数据,而where生效在后.
join关键字的作用是将多个表按一定的条件联合起来,从而可以实现从多个表中获取数据。
推荐课程:MySQL教程。
先笛卡尔积, 然后再on过滤, 如果join是inner的, 就继续往下走, 如果join 是left join, 就把on过滤掉的左主表中的数据再添加回来; 然后再执行where里的过滤;
on中不是最终过滤, 因为后面left join还可能添加回来, 而where才是最终过滤.
只有当使用外连接(left, right)时, on 和 where 才有这个区别, 如果用inner join, 在哪里制定都一样, 因为on 之后就是where, 中间没有其它步骤.
以上就是sql的join和where区别的详细内容,更多请关注 第一PHP社区 其它相关文章!