INNER/LEFT/RIGHT JOIN ON与WHERE的区别

1.LEFT或RIGHT JOIN ON后面的过滤条件即便不成立也会返回左表或右表的所有记录,若是要过滤掉不符合条件的数据,则要把过滤条件放在WHERE后面。blog

tab1:im


tab2:总结

过滤条件在ON后面:
数据

过滤条件在WHERE后面:查询

结果是不一样的img

2.INNER JOIN ON后面的过滤条件也能够放在WHERE后面,效果相同。tab

过滤条件在ON后面:co

过滤条件在WHERE后面:360

结果相同ps

总结:对于LEFT/RIGHT JOIN参与的表的关联操做,若是须要不知足链接条件的行也在查询范围内的话,就把链接条件放在ON后面,而不能放在WHERE后面,若是把链接条件放在了WHERE后面,那么全部的LEFT/RIGHT操做将不起任何做用,对于这种状况,它的效果就彻底等同于INNER链接。对于那些不影响选择行的条件,放在ON或者WHERE后面就能够。

相关文章
相关标签/搜索