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后面就能够。