join on 和 where的区别

时光怂恿深爱的人放手 提交于 2020-03-07 21:05:48

join中,on 和 where 的区别:

两个表在join时,首先做一个笛卡尔积,on后面的条件是对这个笛卡尔积做一个过滤形成一张临时表,如果没有where就直接返回结果,如果有where就对上一步的临时表再进行过滤。

再使用left join 时,on 和 where条件的区别如下:

  • on条件是在生成临时表时使用的条件,他不管on的条件是否为真,都会返回左边表所有的记录
  • where条件是在临时表生成好后,再对临时表进行过滤的条件。这时已经没有left join的含义了,where后提交不为真的就全部过滤掉

如下:

 

原文:https://www.cnblogs.com/zzdbullet/p/10405540.html

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!